Skip to content

refactor!: credentials package #3862

refactor!: credentials package

refactor!: credentials package #3862

Workflow file for this run

name: Lint and Test
on:
push:
branches:
- develop
- master
tags:
- '*'
paths-ignore:
- '**/*.md'
- 'LICENSE'
- 'Dockerfile'
- 'docker-compose.yml'
- 'dc.build.node.yml'
- '.github/**'
- '!.github/workflows/tests.yml'
pull_request:
branches:
- develop
- master
env:
TESTCONTAINERS_WATCHER_IMG: testcontainers/ryuk:0.3.2
jobs:
check_skip:
runs-on: ubuntu-latest
if: "! startsWith(github.event.head_commit.message, '[CI Skip]') && github.repository == 'kiltprotocol/sdk-js'"
steps:
- name: Not Skipped
run: echo "Not Skipped"
build:
runs-on: ubuntu-latest
needs: check_skip
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
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@v3
with:
name: build
path: build.zip
lint:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/download-artifact@v3
with:
name: build
- name: unzip
run: unzip build.zip -d .
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: lint
run: yarn lint
- name: check dependency duplication
run: if ! yarn dedupe --check; then echo "::warning ::Dependencies may be deduplicated"; fi;
test:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
node-version: [16, 18]
required: ['required']
include:
- node-version: 20
required: 'optional'
continue-on-error: ${{ matrix.required == 'optional' }}
steps:
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- uses: actions/download-artifact@v3
with:
name: build
- name: unzip
run: unzip build.zip -d .
- name: unit tests
run: yarn test:ci
cache_imgs:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- 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
strategy:
matrix:
image: ['latest']
required: ['required']
include:
- image: 'latest-develop'
required: 'optional'
continue-on-error: ${{ matrix.required == 'optional' }}
steps:
- uses: actions/download-artifact@v3
with:
name: build
- name: unzip
run: unzip build.zip -d .
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: Log out node version
run: node --version
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
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@v1
- name: pull image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: kilt/prototype-chain
IMAGE_TAG: ${{ matrix.image }}
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 (cjs)
timeout-minutes: 60
run: yarn test:integration -b
- name: run integration tests (esm)
timeout-minutes: 60
run: yarn test:integration:esm -b
bundle_cache:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/download-artifact@v3
with:
name: build
- name: unzip
run: unzip build.zip -d .
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: yarn bundle
run: yarn bundle
- name: upload bundle artifact
uses: actions/upload-artifact@v3
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]
strategy:
matrix:
image: ['latest']
required: ['required']
include:
- image: 'latest-develop'
required: 'optional'
continue-on-error: ${{ matrix.required == 'optional' }}
steps:
- uses: actions/download-artifact@v3
with:
name: build
- name: unzip
run: unzip build.zip -d .
- uses: actions/download-artifact@v3
with:
name: checked-nonmin-bundle
path: packages/sdk-js/dist
- uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
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@v1
- run: basename /packages/sdk-js/dist/
- name: pull node image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: kilt/prototype-chain
IMAGE_TAG: ${{ matrix.image }}
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