diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 246821f..2a30d53 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,25 +4,29 @@ on: push: branches: - main + workflow_dispatch: + +# Never run two deploys of this repo at the same time +concurrency: deploy jobs: - run_pull: + deploy: runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Set up SSH run: | install -m 600 -D /dev/null ~/.ssh/id_ed25519 echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 # This should be redundant but seems to do the trick. ssh-keyscan -H ${{ vars.SSH_HOST }} > ~/.ssh/known_hosts - - name: Connect, pull, build and deploy - run: ssh ${{ secrets.SSH_USER }}@${{ vars.SSH_HOST }} "cd ${{ secrets.WORK_DIR }} && git checkout ${{ vars.MAIN_BRANCH }} && git pull && docker compose down && docker compose up -d --build && exit" + # The deploy key can only run /usr/local/bin/uiogaming-deploy on the server. It takes the + # service name from the top-level docker-compose.yml (see drift/driftsdokumentasjon.md). + - name: Deploy + run: ssh ${{ secrets.SSH_USER }}@${{ vars.SSH_HOST }} mustaboard - name: Clean up + if: always() run: rm -rf ~/.ssh - - permissions: - contents: read - pull-requests: write