Start or Restart Squad Server #898
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Start or Restart Squad Server | |
on: | |
schedule: | |
- cron: '40 14 * * *' | |
workflow_dispatch: | |
inputs: | |
squad_server: | |
type: choice | |
description: Which server, or if all servers should be restarted | |
required: true | |
options: | |
- ALL | |
- vanilla | |
- global-escalation | |
- tactical | |
jobs: | |
build-image: | |
uses: ./.github/workflows/build-docker.yml | |
secrets: inherit | |
deploy: | |
runs-on: self-hosted | |
needs: | |
- build-image | |
container: | |
image: ${{ vars.DOCKER_REGISTRY_URL }}/${{ vars.ansible_container }}:latest | |
credentials: | |
username: "${{ secrets.DOCKER_REGISTRY_USER }}" | |
password: "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | |
steps: | |
- name: Inject Private Key | |
run: | | |
mkdir -p "${HOME}/.ssh" | |
cat << __EOF__ > "${HOME}/.ssh/key" | |
${{ secrets.ansible_ssh_key }} | |
__EOF__ | |
chmod 0600 "${HOME}/.ssh/key" | |
cat << __EOF__ > "${HOME}/.ssh/config" | |
Host * | |
User ${{ vars.ssh_user }} | |
StrictHostKeyChecking no | |
Host ${{ vars.server_host }} | |
HostName ${{ vars.server_host }} | |
User ${{ vars.ssh_user }} | |
IdentityFile ${HOME}/.ssh/key | |
__EOF__ | |
- name: List Environment Variables | |
run: | | |
printenv | |
- name: Restart or Start All Servers | |
if: "${{ inputs.squad_server == 'ALL' || inputs.squad_server == '' }}" | |
env: | |
DOCKER_REGISTRY_PASSWORD: "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | |
run: | | |
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook --private-key="${HOME}/.ssh/key" playbook.yml --tags=squad --extra-vars 'squad_restart_all=True' --extra-vars 'squad_deploy_configs=False' | |
- name: Restart or Start Specific Server | |
if: "${{ inputs.squad_server != 'ALL' }}" | |
env: | |
DOCKER_REGISTRY_PASSWORD: "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | |
run: | | |
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook --private-key="${HOME}/.ssh/key" playbook.yml --tags=squad --extra-vars 'squad_server_to_restart="${{ inputs.squad_server }}"' --extra-vars 'squad_deploy_configs=False' |