name: zcash-params on: workflow_dispatch: push: branches: - 'main' paths: # parameter download code - 'zebra-consensus/src/primitives/groth16/params.rs' - 'zebra-consensus/src/chain.rs' - 'zebrad/src/commands/start.rs' # workflow definitions - 'docker/zcash-params/Dockerfile' - '.github/workflows/zcash-params.yml' env: CARGO_INCREMENTAL: '1' PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }} GAR_BASE: us-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/zebra GCR_BASE: gcr.io/${{ secrets.GCP_PROJECT_ID }} IMAGE_NAME: zcash-params jobs: build: name: Build images # TODO: remove timeout until we have an average build time # timeout-minutes: 180 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3.0.0 with: persist-credentials: false - name: Inject slug/short variables uses: rlespinasse/github-slug-action@v4 # Automatic tag management and OCI Image Format Specification for labels - name: Docker meta id: meta uses: docker/metadata-action@v3.6.2 with: # list of Docker images to use as base name for tags images: | ${{ env.GAR_BASE }}/${{ env.IMAGE_NAME }} # generate Docker tags based on the following events/attributes tags: | type=schedule type=ref,event=branch type=ref,event=pr type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} type=sha # Setup gcloud CLI - name: Authenticate to Google Cloud id: auth uses: google-github-actions/auth@v0.6.0 with: credentials_json: ${{ secrets.GOOGLE_CREDENTIALS }} - name: Set up QEMU id: qemu uses: docker/setup-qemu-action@v1 with: image: tonistiigi/binfmt:latest platforms: all # Setup Docker Buildx to allow use of docker cache layers from GH - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Login to Google Artifact Registry uses: docker/login-action@v1.14.1 with: registry: us-docker.pkg.dev username: _json_key password: ${{ secrets.GOOGLE_CREDENTIALS }} # Build and push image to Google Artifact Registry - name: Build & push id: docker_build uses: docker/build-push-action@v2.10.0 with: target: builder context: . file: ./docker/zcash-params/Dockerfile # TODO: building crates is taking too long with arm64 and it's timing out on GHA # platforms: | # linux/amd64 # linux/arm64 tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | SHORT_SHA=${{ env.GITHUB_SHA_SHORT }} ZEBRA_SKIP_IPV6_TESTS="1" SENTRY_DSN=${{ secrets.SENTRY_ENDPOINT }} push: true cache-from: type=registry,ref=${{ env.GAR_BASE }}/${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.GAR_BASE }}/${{ env.IMAGE_NAME }}:buildcache,mode=max