Skip to content

Commit 60afe27

Browse files
committed
fix(ci): get latest tag for catalog remote tests
1 parent f295b3c commit 60afe27

2 files changed

Lines changed: 70 additions & 6 deletions

File tree

.github/workflows/pull-request-main.yml

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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
@@ -98,6 +128,8 @@ jobs:
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

.github/workflows/schedule-main.yml

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,47 @@ jobs:
7575
id-token: write
7676
contents: read
7777
actions: read
78-
env:
79-
CATALOG_SERVICE_IMAGE: ${{ secrets.AWS_ACCOUNT_NUMBER_PROD }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/op-catalog-service:latest
8078
steps:
79+
- name: Checkout code
80+
uses: actions/checkout@v4
81+
82+
- name: Configure AWS credentials for ECR
83+
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
84+
with:
85+
role-to-assume: ${{ secrets.ECR_READ_ROLE_ARN }}
86+
aws-region: ${{ secrets.AWS_REGION }}
87+
88+
- name: Get latest catalog service tag from ECR
89+
id: get-catalog-tag
90+
run: |
91+
# Fetch the latest image tag from ECR based on push date
92+
# Sort by imagePushedAt in reverse order (latest first) and get the first semver tag
93+
LATEST_TAG=$(aws ecr describe-images \
94+
--repository-name op-catalog-service \
95+
--region ${{ secrets.AWS_REGION }} \
96+
--registry-id ${{ secrets.AWS_ACCOUNT_NUMBER_PROD }} \
97+
--query 'reverse(sort_by(imageDetails,& imagePushedAt))[*].imageTags[*]' \
98+
--output text | \
99+
tr '\t' '\n' | \
100+
grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | \
101+
head -1)
102+
103+
if [[ -z "${LATEST_TAG}" ]]; then
104+
echo "::error::Could not find a valid semantic version tag in ECR"
105+
exit 1
106+
fi
107+
108+
echo "Latest catalog service tag from ECR: ${LATEST_TAG}"
109+
echo "tag=${LATEST_TAG}" >> "${GITHUB_OUTPUT}"
110+
81111
- name: Pull Catalog Service ECR Image
82112
uses: smartcontractkit/.github/actions/pull-private-ecr-image@2f8f0baf38e46140c6a119eb551a56eaaabcc09e # pull-private-ecr-image@1.0.0
83113
with:
84114
aws-account-number: ${{ secrets.AWS_ACCOUNT_NUMBER_PROD }}
85115
aws-region: ${{ secrets.AWS_REGION }}
86116
aws-role-arn: ${{ secrets.ECR_READ_ROLE_ARN }}
87117
ecr-repository: "op-catalog-service"
88-
image-tag: "latest"
118+
image-tag: ${{ steps.get-catalog-tag.outputs.tag }}
89119

90120
- name: Run Catalog Remote Integration Tests
91121
uses: smartcontractkit/.github/actions/ci-test-go@dfcba48f05933158428bce867d790e3d5a9baa6b # ci-test-go@1.1.0
@@ -94,6 +124,8 @@ jobs:
94124
go-test-cmd: cd datastore/catalog/remote && go test -v -race -timeout 10m -gcflags=all=-d=checkptr=0 -coverprofile=../../../coverage.txt
95125
use-go-cache: true
96126
artifact-name: catalog-remote-tests
127+
env:
128+
CATALOG_SERVICE_IMAGE: ${{ secrets.AWS_ACCOUNT_NUMBER_PROD }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/op-catalog-service:${{ steps.get-catalog-tag.outputs.tag }}
97129

98130
sonarqube:
99131
name: Sonar Scan

0 commit comments

Comments
 (0)