ci: Move from Gitlab to Github #12
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: pr | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
- name: Checkout files | |
uses: actions/checkout@v4 | |
- name: Install Node v18 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "18.14" | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install JS dependencies | |
run: yarn install | |
- name: Linter. | |
run: yarn lint | |
tests: | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout files | |
uses: actions/checkout@v4 | |
- name: Install Node v18 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "18.14" | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install JS dependencies | |
run: yarn install | |
- name: Unit tests. | |
run: yarn test:ci | |
build: | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout files | |
uses: actions/checkout@v4 | |
- name: Install Node v18 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "18.14" | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install JS dependencies | |
run: yarn install | |
- name: Build | |
run: yarn build | |
build-docs: | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout files | |
uses: actions/checkout@v4 | |
- name: Install Node v18 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "18.14" | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install JS dependencies | |
run: yarn install | |
- name: Build Docs | |
run: yarn build:docs | |
build-npm-release: | |
# This test is to make sure sidecar can release a binary without any errors. | |
# This script does not publish a release, but instead uses yarn to create a tarball and | |
# install it locally. Once installed a binary is attached to sidecars node_modules, and that | |
# binary is then tested against. For more in depth information reference the docs at | |
# `../../scripts/README.md`. | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- run: yarn | |
- run: yarn test:test-release | |
build_docker: | |
name: Build docker image | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v4 | |
- name: Build Docker image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ./Dockerfile | |
push: false | |
tags: | | |
docker.io/parity/substrate-api-sidecar:latest | |
e2e: | |
name: e2e | |
runs-on: ubuntu-latest | |
container: | |
image: node:18 | |
strategy: | |
matrix: | |
include: | |
- chain-name: westend | |
chain-url: wss://westend-rpc.polkadot.io | |
- chain-name: kusama | |
chain-url: wss://apps-kusama-rpc.polkadot.io | |
- chain-name: polkadot | |
chain-url: wss://apps-rpc.polkadot.io | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: e2e tests | |
run: | | |
yarn --immutable | |
echo "Tests for ${{ matrix.chain-name }}" | |
yarn test:latest-e2e-tests --log-level info --chain ${{ matrix.chain-name }} --local ${{ matrix.chain-url }} |