diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..276581d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +# Common ignores for all releases +.github/ export-ignore +.gitignore export-ignore + +# Simple release ignores (activated when creating release with export-ignore) +mge/vpi/__pycache__/ export-ignore +.github/ export-ignore +.gitignore export-ignore +*.bat export-ignore +*.py export-ignore +requirements.txt export-ignore \ No newline at end of file diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml new file mode 100644 index 0000000..2270e26 --- /dev/null +++ b/.github/workflows/dev.yml @@ -0,0 +1,60 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the main branch + push: + branches: [ dev ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +concurrency: + group: dev + cancel-in-progress: true +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + # Install wakeonlan + # - name: Make scripts executable + # run: sudo apt-get install -y wakeonlan + + - name: Setup SSH Keys and known_hosts + env: + SSH_AUTH_SOCK: /tmp/ssh_agent.sock + run: | + ssh-agent -a $SSH_AUTH_SOCK > /dev/null + ssh-add - <<< "${{ secrets.DEPLOY_KEY }}" + + # Runs a set of commands using the runners shell + - name: Sync with game servers + env: + SSH_AUTH_SOCK: /tmp/ssh_agent.sock + run: | + # For potato.tf servers (pterodactyl user) + for i in "22 pterodactyl@us.potato.tf" "22 pterodactyl@ustx.potato.tf" "22 pterodactyl@br.potato.tf" "27040 pterodactyl@us.potato.tf" "3438 pterodactyl@us.potato.tf" "2849 pterodactyl@us.potato.tf" "22 pterodactyl@usw2.potato.tf" "27035 pterodactyl@eu.potato.tf" "22 pterodactyl@eu2.potato.tf" "22 pterodactyl@10.243.40.231" "22 pterodactyl@sgp.potato.tf"; do a=( $i ); + { + rsync -a \ + --exclude='mge/vpi/vpi_interfaces.py' \ + --exclude='mge/vpi/vpi_watch.bat' \ + --exclude='mge/vpi/vpi.nut' \ + --exclude='mge/cfg/config.nut' \ + --exclude='requirements.txt' \ + --exclude='mge_windows_setup.bat' \ + -e "ssh -p ${a[0]} -o StrictHostKeyChecking=no" ./mge ${a[1]}:/var/tf2server/tf/scripts/vscripts & + + rsync -a -e "ssh -p ${a[0]} -o StrictHostKeyChecking=no" ./mapspawn.nut ${a[1]}:/var/tf2server/tf/scripts/vscripts/mge_init.nut & + } & + done + wait diff --git a/mge/cfg/config.nut b/mge/cfg/config.nut index 2ae5320..44f1e3b 100644 --- a/mge/cfg/config.nut +++ b/mge/cfg/config.nut @@ -1,6 +1,8 @@ //CONFIG CONSTANTS const DEFAULT_LANGUAGE = "english" +const SECRET_VPI_KEY = "" //set this to a random string to act as a secret key for the vpi interface + /******************************************************************************************************************** * how long to wait before restarting the map/server in seconds * * this uses a hack with point_intermission to trigger a changelevel to whatever the `nextlevel` cvar is set to *