name: Deploy on: push: branches: - main jobs: deploy: name: Deploy runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v5 - name: Inject configuration secrets and variables uses: actions-able/envsubst-action@v1 with: input-file: 'template.env' output-file: '.env' env: CFG_VELOCITY_PORT: ${{ vars.CFG_VELOCITY_PORT }} CFG_BLUEMAP_PORT: ${{ vars.CFG_BLUEMAP_PORT }} CFG_RCON_PASSWORD: ${{ secrets.CFG_RCON_PASSWORD }} CFG_FORWARDING_SECRET: ${{ secrets.CFG_FORWARDING_SECRET }} CFG_DCLINK_GUILD: ${{ vars.CFG_DCLINK_GUILD }} CFG_DCLINK_CHANNEL: ${{ vars.CFG_DCLINK_CHANNEL }} CFG_DCLINK_ROLE: ${{ vars.CFG_DCLINK_ROLE }} CFG_DCLINK_TOKEN: ${{ secrets.CFG_DCLINK_TOKEN }} CFG_LUCKPERMS_PASSWORD: ${{ secrets.CFG_LUCKPERMS_PASSWORD }} CFG_LUCKPERMS_PORT: ${{ vars.CFG_LUCKPERMS_PORT }} - name: Setup ssh-agent uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Deploy to remote env: REMOTE_USER: ${{ vars.REMOTE_USER }} REMOTE_HOST: ${{ vars.REMOTE_HOST }} REMOTE_PATH: ${{ vars.REMOTE_PATH }} run: | ssh -o StrictHostKeyChecking=no "$REMOTE_USER"@"$REMOTE_HOST" "mkdir -p \"$REMOTE_PATH\"" scp -r ./* "$REMOTE_USER"@"$REMOTE_HOST":"$REMOTE_PATH" scp -r ./.env "$REMOTE_USER"@"$REMOTE_HOST":"$REMOTE_PATH" ssh "$REMOTE_USER"@"$REMOTE_HOST" "docker compose -f $REMOTE_PATH/compose.yml down" ssh "$REMOTE_USER"@"$REMOTE_HOST" "docker compose -f $REMOTE_PATH/compose.yml pull" ssh "$REMOTE_USER"@"$REMOTE_HOST" "docker compose -f $REMOTE_PATH/compose.yml up -d --force-recreate"