name: Build Docker Node Image # cancel-in-progress is false to avoid orphaning blobs mid-push; see RELEASES.md. concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: false on: push: branches: - main - 'release/v*' workflow_dispatch: jobs: build-and-push-images: name: "Build and push Docker node image with commit hash" runs-on: warp-ubuntu-2404-x64-16x environment: production permissions: contents: read steps: - name: Checkout repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 with: persist-credentials: false - name: Login to Docker Hub uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 with: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_PAT }} - name: Allow unprivileged user namespaces (needed by repro-env/podman on Ubuntu 24.04) run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 - name: Install repro-env run: | wget 'https://github.com/kpcyrd/repro-env/releases/download/v0.4.3/repro-env' echo '2a00b21ac5e990e0c6a0ccbf3b91e34a073660d1f4553b5f3cda2b09cc4d4d8a repro-env' | sha256sum -c - sudo install -m755 repro-env -t /usr/bin - name: Install skopeo run: | sudo apt-get update sudo apt-get install -y skopeo - name: Build and push node image run: | export NODE_IMAGE_NAME=mpc-node ./deployment/build-images.sh --node --push