CI #377
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: CI | |
on: | |
push: | |
branches: | |
- 'master' | |
pull_request: | |
branches: | |
- '**' | |
types: [opened, synchronize] | |
schedule: | |
- cron: '0 0 * * *' | |
concurrency: | |
group: build-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
name: Prettier and Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: matic-cli | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16.17.1' | |
- name: Install npm dependencies | |
run: | | |
cd matic-cli | |
npm install --prefer-offline --no-audit --progress=false | |
- name: Run prettier | |
run: | | |
cd matic-cli | |
npm run prettier:check | |
- name: Run lint | |
run: | | |
cd matic-cli | |
npm run lint:check | |
integration-tests: | |
permissions: | |
id-token: write | |
contents: write | |
if: (github.event.action != 'closed' || github.event.pull_request.merged == true) | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] # list of os: https://github.com/actions/virtual-environments | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: matic-cli | |
- name: Create .env file | |
run: | | |
cd matic-cli | |
cp .env.example .env | |
sed -i 's,YOUR_IDENTIFIER,matic-cli-ci,' .env | |
sed -i 's,aws-key,matic-cli-ci-key,' .env | |
sed -i 's,/absolute/path/to/your/,/home/runner/work/matic-cli/matic-cli/matic-cli/aws/,' .env | |
sed -i 's,MATIC_CLI_BRANCH=master,MATIC_CLI_BRANCH=${{ github.head_ref || github.ref_name }},' .env | |
- name: Get GitHub action runner IP | |
id: ip | |
uses: haythem/[email protected] | |
- name: Create secret.tfvars | |
run: | | |
cd matic-cli | |
touch secret.tfvars | |
echo "SG_CIDR_BLOCKS=[\"${{ steps.ip.outputs.ipv4 }}/32\"]" >> secret.tfvars | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@master | |
with: | |
aws-region: eu-west-1 | |
role-to-assume: arn:aws:iam::${{ secrets.ACCOUNT_ID }}:role/MaticCLIGitHubActionsRole | |
role-session-name: GithubActionsSession | |
- name: Create aws key pair | |
run: | | |
cd matic-cli | |
mkdir aws | |
cd aws | |
aws ec2 create-key-pair --key-name matic-cli-ci-key --key-type rsa --key-format pem --query "KeyMaterial" --output text > matic-cli-ci-key.pem | |
chmod 700 matic-cli-ci-key.pem | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16.17.1' | |
- name: Install npm dependencies | |
run: | | |
cd matic-cli | |
npm install --prefer-offline --no-audit --progress=false | |
- name: Init devnet | |
run: | | |
cd matic-cli | |
./bin/express-cli --init aws | |
- name: Start devnet | |
run: | | |
cd matic-cli/deployments/devnet-1 | |
ls -la | |
../../bin/express-cli --start | |
- name: Run stateSynced and checkpoint tests | |
run: | | |
cd matic-cli/deployments/devnet-1 | |
../../bin/express-cli --send-state-sync | |
timeout 20m ../../bin/express-cli --monitor exit | |
- name: Run smart contracts events tests | |
run: | | |
cd matic-cli/deployments/devnet-1 | |
timeout 5m ../../bin/express-cli --send-staked-event 1 | |
timeout 5m ../../bin/express-cli --send-stakeupdate-event 1 | |
timeout 5m ../../bin/express-cli --send-topupfee-event 1 | |
timeout 10m ../../bin/express-cli --send-unstakeinit-event 1 | |
- name: Destroy devnet | |
if: always() | |
run: | | |
cd matic-cli/deployments/devnet-1 | |
echo "Running --destroy" | |
../../bin/express-cli --destroy | |
- name: Delete aws key pair | |
if: always() | |
run: | | |
cd matic-cli/aws | |
aws ec2 delete-key-pair --key-name matic-cli-ci-key |