name: deploy queue on: push: branches: - canary paths: - fluxer_queue/** - .github/workflows/deploy-queue.yaml workflow_dispatch: inputs: ref: type: string required: false default: '' description: Optional git ref (defaults to the triggering branch) concurrency: group: deploy-fluxer-queue cancel-in-progress: true permissions: contents: read jobs: deploy: name: Deploy queue runs-on: blacksmith-8vcpu-ubuntu-2404 timeout-minutes: 25 env: IS_CANARY: true STACK: fluxer-queue CACHE_SCOPE: deploy-fluxer-queue RELEASE_CHANNEL: canary steps: - uses: actions/checkout@v6 with: ref: ${{ inputs.ref || '' }} fetch-depth: 0 - name: Record deploy commit run: python3 scripts/ci/workflows/deploy_queue.py --step record_deploy_commit - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Set build timestamp run: python3 scripts/ci/workflows/deploy_queue.py --step set_build_timestamp - name: Build image uses: docker/build-push-action@v6 with: context: . file: fluxer_queue/Dockerfile tags: | ${{ env.STACK }}:${{ env.DEPLOY_SHA }} load: true platforms: linux/amd64 cache-from: type=gha,scope=${{ env.CACHE_SCOPE }} cache-to: type=gha,mode=max,scope=${{ env.CACHE_SCOPE }} build-args: | BUILD_SHA=${{ env.DEPLOY_SHA }} BUILD_NUMBER=${{ github.run_number }} BUILD_TIMESTAMP=${{ env.BUILD_TIMESTAMP }} RELEASE_CHANNEL=${{ env.RELEASE_CHANNEL }} env: DOCKER_BUILD_SUMMARY: false DOCKER_BUILD_RECORD_UPLOAD: false - name: Install docker-pussh run: python3 scripts/ci/workflows/deploy_queue.py --step install_docker_pussh - name: Set up SSH agent uses: webfactory/ssh-agent@v0.9.1 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY_SERVER }} - name: Add server to known hosts run: python3 scripts/ci/workflows/deploy_queue.py --step add_known_hosts --server-ip ${{ secrets.SERVER_IP }} - name: Push image and deploy env: SERVER: ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} IMAGE_TAG: ${{ env.STACK }}:${{ env.DEPLOY_SHA }} run: python3 scripts/ci/workflows/deploy_queue.py --step push_and_deploy