Skip to content

Test latest node release candidate #9

Test latest node release candidate

Test latest node release candidate #9

name: Test latest node release candidate
on:
workflow_dispatch:
inputs:
docker-image-tag-name:
type: string
description: The tag of the kiltprotocol/prototype-chain Docker image to test against
required: true
env:
TESTCONTAINERS_WATCHER_IMG: testcontainers/ryuk:0.3.2
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: yarn install
run: yarn install --immutable
- name: yarn build
run: yarn build
- name: zip build
run: zip -r build.zip .
- name: upload build
uses: actions/upload-artifact@v4
with:
name: build
path: build.zip
cache_imgs:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: make sure testcontainers image is in cache
uses: ./.github/actions/cached-image-pull
with:
image: ${{ env.TESTCONTAINERS_WATCHER_IMG }}
integration_test:
runs-on: ubuntu-latest
needs: cache_imgs
steps:
- uses: actions/download-artifact@v4
with:
name: build
- name: unzip
run: unzip build.zip -d .
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Log out node version
run: node --version
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-central-1
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: pull image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: kilt/prototype-chain
IMAGE_TAG: ${{ github.event.inputs.docker-image-tag-name }}
run: |
docker pull $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "TESTCONTAINERS_NODE_IMG=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_ENV
- name: get cached testcontainers image
uses: ./.github/actions/cached-image-pull
with:
image: ${{ env.TESTCONTAINERS_WATCHER_IMG }}
- name: run integration tests
timeout-minutes: 60
run: yarn test:integration -b
bundle_cache:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/download-artifact@v4
with:
name: build
- name: unzip
run: unzip build.zip -d .
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: yarn bundle
run: yarn bundle
- name: upload bundle artifact
uses: actions/upload-artifact@v4
with:
name: checked-nonmin-bundle
path: packages/sdk-js/dist/sdk-js.umd.js
bundle_test:
runs-on: ubuntu-latest
needs: [cache_imgs, bundle_cache]
steps:
- uses: actions/download-artifact@v4
with:
name: build
- name: unzip
run: unzip build.zip -d .
- uses: actions/download-artifact@v4
with:
name: checked-nonmin-bundle
path: packages/sdk-js/dist
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- run: basename /packages/sdk-js/dist/
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-central-1
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: pull node image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: kilt/prototype-chain
IMAGE_TAG: ${{ github.event.inputs.docker-image-tag-name }}
run: |
docker pull $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "TESTCONTAINERS_NODE_IMG=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_ENV
- name: get cached testcontainers image
uses: ./.github/actions/cached-image-pull
with:
image: ${{ env.TESTCONTAINERS_WATCHER_IMG }}
- name: prepare bundle tests
run: |
yarn test:ci:bundle:preparation
- name: run bundle tests
timeout-minutes: 60
run: |
yarn test:bundle