@@ -226,24 +226,32 @@ jobs:
226226 test-integration-anvil :
227227 name : Test (Integration Anvil)
228228 runs-on : ubuntu-latest
229- env :
230- NITRO_CONTRACTS_IMAGE_REF : v3.2.0-2f747c7
229+ permissions :
230+ contents : read
231+ packages : read
231232 steps :
232233 - name : Checkout
233234 uses : actions/checkout@v4
234235
235- - name : Set up Docker Buildx
236- uses : docker/setup-buildx-action@v3
236+ - name : Set nitro contracts image
237+ run : |
238+ echo "NITRO_CONTRACTS_GHCR_IMAGE=ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/chain-sdk-nitro-contracts:v3.2.0-2f747c7" >> "$GITHUB_ENV"
237239
238- - name : Build nitro contracts image
239- uses : docker/build-push- action@v6
240+ - name : Log in to GHCR
241+ uses : docker/login- action@v3
240242 with :
241- context : ./nitro-contracts
242- file : ./nitro-contracts/Dockerfile
243- tags : chain-sdk-nitro-contracts:${{ env.NITRO_CONTRACTS_IMAGE_REF }}
244- load : true
245- cache-from : type=gha,scope=chain-sdk-nitro-contracts-${{ env.NITRO_CONTRACTS_IMAGE_REF }}
246- cache-to : type=gha,mode=max,scope=chain-sdk-nitro-contracts-${{ env.NITRO_CONTRACTS_IMAGE_REF }}
243+ registry : ghcr.io
244+ username : ${{ github.actor }}
245+ password : ${{ secrets.GITHUB_TOKEN }}
246+
247+ - name : Load nitro contracts image
248+ run : |
249+ if ! docker pull "${NITRO_CONTRACTS_GHCR_IMAGE}"; then
250+ docker build \
251+ -f ./nitro-contracts/Dockerfile \
252+ -t "${NITRO_CONTRACTS_GHCR_IMAGE}" \
253+ ./nitro-contracts
254+ fi
247255
248256 - name : Setup pnpm
249257 uses : pnpm/action-setup@v4
@@ -288,3 +296,36 @@ jobs:
288296 with :
289297 path : .cache/anvil-rpc-cache.json
290298 key : ${{ runner.os }}-anvil-rpc-cache-${{ github.ref_name }}-${{ github.run_id }}
299+
300+ publish-nitro-contracts-image :
301+ name : Publish Nitro Contracts Image
302+ runs-on : ubuntu-latest
303+ permissions :
304+ contents : read
305+ packages : write
306+ steps :
307+ - name : Checkout
308+ uses : actions/checkout@v4
309+
310+ - name : Set nitro contracts image
311+ run : |
312+ echo "NITRO_CONTRACTS_GHCR_IMAGE=ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/chain-sdk-nitro-contracts:v3.2.0-2f747c7"
313+
314+ - name : Set up Docker Buildx
315+ uses : docker/setup-buildx-action@v3
316+
317+ - name : Log in to GHCR
318+ uses : docker/login-action@v3
319+ with :
320+ registry : ghcr.io
321+ username : ${{ github.actor }}
322+ password : ${{ secrets.GITHUB_TOKEN }}
323+
324+ - name : Build and push nitro contracts image
325+ uses : docker/build-push-action@v6
326+ with :
327+ context : ./nitro-contracts
328+ file : ./nitro-contracts/Dockerfile
329+ push : true
330+ tags : |
331+ ${{ env.NITRO_CONTRACTS_GHCR_IMAGE }}
0 commit comments