@@ -79,17 +79,47 @@ jobs:
7979 id-token : write
8080 contents : read
8181 actions : read
82- env :
83- CATALOG_SERVICE_IMAGE : ${{ secrets.AWS_ACCOUNT_NUMBER_PROD }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/op-catalog-service:latest
8482 steps :
83+ - name : Checkout code
84+ uses : actions/checkout@v4
85+
86+ - name : Configure AWS credentials for ECR
87+ uses : aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
88+ with :
89+ role-to-assume : ${{ secrets.ECR_READ_ROLE_ARN }}
90+ aws-region : ${{ secrets.AWS_REGION }}
91+
92+ - name : Get latest catalog service tag from ECR
93+ id : get-catalog-tag
94+ run : |
95+ # Fetch the latest image tag from ECR based on push date
96+ # Sort by imagePushedAt in reverse order (latest first) and get the first semver tag
97+ LATEST_TAG=$(aws ecr describe-images \
98+ --repository-name op-catalog-service \
99+ --region ${{ secrets.AWS_REGION }} \
100+ --registry-id ${{ secrets.AWS_ACCOUNT_NUMBER_PROD }} \
101+ --query 'reverse(sort_by(imageDetails,& imagePushedAt))[*].imageTags[*]' \
102+ --output text | \
103+ tr '\t' '\n' | \
104+ grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | \
105+ head -1)
106+
107+ if [[ -z "${LATEST_TAG}" ]]; then
108+ echo "::error::Could not find a valid semantic version tag in ECR"
109+ exit 1
110+ fi
111+
112+ echo "Latest catalog service tag from ECR: ${LATEST_TAG}"
113+ echo "tag=${LATEST_TAG}" >> "${GITHUB_OUTPUT}"
114+
85115 - name : Pull Catalog Service ECR Image
86116 uses : smartcontractkit/.github/actions/pull-private-ecr-image@2f8f0baf38e46140c6a119eb551a56eaaabcc09e # pull-private-ecr-image@1.0.0
87117 with :
88118 aws-account-number : ${{ secrets.AWS_ACCOUNT_NUMBER_PROD }}
89119 aws-region : ${{ secrets.AWS_REGION }}
90120 aws-role-arn : ${{ secrets.ECR_READ_ROLE_ARN }}
91121 ecr-repository : " op-catalog-service"
92- image-tag : " latest "
122+ image-tag : ${{ steps.get-catalog-tag.outputs.tag }}
93123
94124 - name : Run Catalog Remote Integration Tests
95125 uses : smartcontractkit/.github/actions/ci-test-go@dfcba48f05933158428bce867d790e3d5a9baa6b # ci-test-go@1.1.0
98128 go-test-cmd : cd datastore/catalog/remote && go test -v -race -timeout 10m -gcflags=all=-d=checkptr=0 -coverprofile=../../../coverage.txt
99129 use-go-cache : true
100130 artifact-name : catalog-remote-tests
131+ env :
132+ CATALOG_SERVICE_IMAGE : ${{ secrets.AWS_ACCOUNT_NUMBER_PROD }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/op-catalog-service:${{ steps.get-catalog-tag.outputs.tag }}
101133
102134 sonarqube :
103135 name : Sonar Scan
0 commit comments