Skip to content

refactor: use only goreleaser to build unsigned chainlink images in one workflow #6

refactor: use only goreleaser to build unsigned chainlink images in one workflow

refactor: use only goreleaser to build unsigned chainlink images in one workflow #6

name: "Build and Publish Chainlink"
on:
pull_request:
push:
branches:
- develop
jobs:
goreleaser-build-publish-chainlink:
runs-on:
labels: ubuntu22.04-16cores-64GB
permissions:
id-token: write
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- name: Get image tag
id: get-image-tag
run: |
short_sha=$(git rev-parse --short HEAD)
if [[ ${{ github.event_name }} == 'push' ]]; then
echo "image-tag=develop-${short_sha}" >> $GITHUB_OUTPUT
else
if [[ ${{ github.head_ref }} == 'release/'* ]]; then
echo "image-tag=release-${short_sha}" >> $GITHUB_OUTPUT
else
echo "image-tag=pr-${{ github.event.number }}-${short_sha}" >> $GITHUB_OUTPUT
fi
fi
- name: Configure aws credentials
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with:
role-to-assume: ${{ secrets.AWS_OIDC_IAM_ROLE_BUILD_PUBLISH_DEVELOP_PR }}
aws-region: ${{ secrets.AWS_REGION }}
mask-aws-account-id: true
role-session-name: goreleaser-build-publish-chainlink
- name: Build and publish images
id: goreleaser-build-publish
uses: ./.github/actions/goreleaser-build-sign-publish
with:
enable-docker-publish: "true"
docker-registry: ${{ secrets.AWS_SDLC_ECR_HOSTNAME }}
docker-image-name: chainlink
docker-image-tag: ${{ steps.get-image-tag.outputs.image-tag }}
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: Output image name and digest
shell: bash
run: |
echo "### Docker Images" | tee -a "$GITHUB_STEP_SUMMARY"
jq -r '.[] | select(.type == "Docker Image") | "`\(.goarch)-image`: \(.name)"' dist/artifacts.json >> output.txt
jq -r '.[] | select(.type == "Archive") | "`\(.goarch)-digest`: \(.extra.Checksum)"' dist/artifacts.json >> output.txt
while read -r line; do
echo "$line" | tee -a "$GITHUB_STEP_SUMMARY"
done < output.txt
- 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: goreleaser-build-publish-chainlink
continue-on-error: true