name: "Build publish Chainlink develop on private ECR"

on:
  push:
    branches:
      - develop

jobs:
  push-chainlink-develop-goreleaser:
    runs-on:
      labels: ubuntu22.04-16cores-64GB
    outputs:
      goreleaser-metadata: ${{ steps.build-sign-publish.outputs.goreleaser-metadata }}
      goreleaser-artifacts: ${{ steps.build-sign-publish.outputs.goreleaser-artifacts }}
    environment: build-develop
    permissions:
      id-token: write
      contents: read
    steps:
      - name: Checkout repository
        uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
      - name: Configure aws credentials
        uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
        with:
          role-to-assume: ${{ secrets.AWS_OIDC_IAM_ROLE_ARN }}
          role-duration-seconds: ${{ secrets.AWS_ROLE_DURATION_SECONDS }}
          aws-region: ${{ secrets.AWS_REGION }}
          mask-aws-account-id: true
          role-session-name: goreleaser-build-publish-chainlink.push-develop
      - name: Build, sign, and publish image
        id: build-sign-publish
        uses: ./.github/actions/goreleaser-build-sign-publish
        with:
          enable-docker-publish: "true"
          docker-registry: ${{ secrets.AWS_DEVELOP_ECR_HOSTNAME }}
          enable-goreleaser-snapshot: "true"
          goreleaser-exec: ./tools/bin/goreleaser_wrapper
          goreleaser-config: .goreleaser.develop.yaml
          goreleaser-key: ${{ secrets.GORELEASER_KEY }}
          zig-version: 0.11.0
      - name: Collect Metrics
        if: always()
        id: collect-gha-metrics
        uses: smartcontractkit/push-gha-metrics-action@d9da21a2747016b3e13de58c7d4115a3d5c97935 # v3.0.1
        with:
          id: goreleaser-build-publish
          org-id: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }}
          basic-auth: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }}
          hostname: ${{ secrets.GRAFANA_INTERNAL_HOST }}
          this-job-name: push-chainlink-develop-goreleaser
        continue-on-error: true
        