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 uses: actions-able/envsubst-action@v1 with: input-file: 'template.htpasswd' output-file: 'htpasswd' env: CFG_REGISTRY_AUTH_HTPASSWD: ${{ secrets.CFG_REGISTRY_AUTH_HTPASSWD }} - 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: ${{ secrets.REMOTE_USER }} REMOTE_HOST: ${{ secrets.REMOTE_HOST }} REMOTE_PATH: ${{ secrets.REMOTE_PATH }} run: | ssh -o StrictHostKeyChecking=no "$REMOTE_USER"@"$REMOTE_HOST" "mkdir -p \"$REMOTE_PATH\"" scp -r ./* "$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"