Ubuntu-Ansible-Setup/.github/workflows/start-squadjs.yml

70 lines
2.1 KiB
YAML

name: Start or Restart SquadJS Service
on:
workflow_dispatch:
inputs:
squad_server:
type: choice
description: Which SquadJS service, or if all SquadJS services should be restarted
required: true
options:
- ALL
- vanilla
- mee-french
- 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: Login To Registry
uses: docker/login-action@v2
with:
registry: "${{ vars.DOCKER_REGISTRY_URL }}"
username: "${{ secrets.DOCKER_REGISTRY_USER }}"
password: "${{ secrets.DOCKER_REGISTRY_PASSWORD }}"
- 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 ~/.ssh/key
__EOF__
- name: Restart or Start All SquadJS Services
if: "${{ inputs.squad_server == 'ALL' }}"
run: |
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook --private-key="${HOME}/.ssh/key" playbook.yml --tags=squad --extra-vars 'squadjs_restart_all=True' --extra-vars 'squad_deploy_configs=False'
- name: Restart or Start Specific Server
if: "${{ inputs.squad_server != 'ALL' }}"
run: |
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook --private-key="${HOME}/.ssh/key" playbook.yml --tags=squad --extra-vars 'squadjs_to_restart="${{ inputs.squad_server }}"' --extra-vars 'squad_deploy_configs=False'