Add checks for ddo chain id and did. (#1868) #3239
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: | |
- main | |
- v3 | |
tags: | |
- '**' | |
pull_request: | |
branches: | |
- '**' | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Cache node_modules | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-node-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-lint-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: ${{ runner.os }}-lint-${{ env.cache-name }}- | |
- run: npm ci | |
- run: npm run lint | |
test_unit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Cache node_modules | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-node-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-test-unit-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: ${{ runner.os }}-test-unit-${{ env.cache-name }}- | |
# Env var expansion workaround | |
# https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable | |
- name: Set ADDRESS_FILE | |
run: echo "ADDRESS_FILE=${HOME}/.ocean/ocean-contracts/artifacts/address.json" >> $GITHUB_ENV | |
- name: Checkout Barge | |
uses: actions/checkout@v3 | |
with: | |
repository: 'oceanprotocol/barge' | |
path: 'barge' | |
- name: Run Ganache with Barge | |
working-directory: ${{ github.workspace }}/barge | |
run: | | |
bash -x start_ocean.sh --no-aquarius --no-elasticsearch --no-provider --no-dashboard 2>&1 > start_ocean.log & | |
- run: npm ci | |
- name: Wait for contracts deployment | |
working-directory: ${{ github.workspace }}/barge | |
run: | | |
for i in $(seq 1 250); do | |
sleep 5 | |
[ -f "$HOME/.ocean/ocean-contracts/artifacts/ready" ] && break | |
done | |
ls -la "$HOME/.ocean/ocean-contracts/artifacts/" | |
- run: npm run build:metadata | |
- run: npm run test:unit:cover | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-unit | |
path: coverage/ | |
test_integration: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Cache node_modules | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-node-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-test-integration-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: ${{ runner.os }}-test-integration-${{ env.cache-name }}- | |
# Env var expansion workaround | |
# https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable | |
- name: Set ADDRESS_FILE | |
run: echo "ADDRESS_FILE=${HOME}/.ocean/ocean-contracts/artifacts/address.json" >> $GITHUB_ENV | |
- name: Checkout Barge | |
uses: actions/checkout@v3 | |
with: | |
repository: 'oceanprotocol/barge' | |
path: 'barge' | |
- name: Login to Docker Hub | |
if: ${{ env.DOCKERHUB_PASSWORD && env.DOCKERHUB_USERNAME }} | |
run: | | |
echo "Login to Docker Hub";echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin | |
env: | |
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Run Barge | |
working-directory: ${{ github.workspace }}/barge | |
run: | | |
bash -x start_ocean.sh --with-provider2 --no-dashboard --with-c2d 2>&1 > start_ocean.log & | |
- run: npm ci | |
- run: npm run build:metadata | |
- name: Delete default runner images | |
run: | | |
docker image rm node:16 | |
docker image rm node:16-alpine | |
docker image rm node:18 | |
docker image rm node:18-alpine | |
docker image rm node:20 | |
docker image rm debian:10 | |
docker image rm debian:11 | |
docker image rm moby/buildkit:latest | |
- name: Wait for contracts deployment and C2D cluster to be ready | |
working-directory: ${{ github.workspace }}/barge | |
run: | | |
for i in $(seq 1 250); do | |
sleep 10 | |
[ -f "$HOME/.ocean/ocean-contracts/artifacts/ready" -a -f "$HOME/.ocean/ocean-c2d/ready" ] && break | |
done | |
- name: integration | |
run: npm run test:integration:cover | |
env: | |
PROVIDER_URL: 'http://172.15.0.4:8030' | |
- name: docker logs | |
run: docker logs ocean_aquarius_1 && docker logs ocean_provider_1 && docker logs ocean_provider2_1 && docker logs ocean_computetodata_1 | |
if: ${{ failure() }} | |
- name: Upload coverage | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-integration | |
path: coverage/ | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
node: ['20', '18'] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Cache node_modules | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-node-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-${{ matrix.node }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: ${{ runner.os }}-${{ matrix.node }}-build-${{ env.cache-name }}- | |
- run: npm ci | |
- run: npm run build | |
- run: npm run doc:json | |
coverage: | |
runs-on: ubuntu-latest | |
needs: [test_unit, test_integration] | |
if: ${{ success() && github.actor != 'dependabot[bot]' }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: coverage-unit | |
- uses: actions/download-artifact@v4 | |
with: | |
name: coverage-integration | |
- uses: paambaati/codeclimate-action@v2.7.5 | |
env: | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
with: | |
coverageLocations: | | |
${{ github.workspace }}/unit/lcov.info:lcov | |
${{ github.workspace }}/integration/lcov.info:lcov | |
create_guide: | |
runs-on: ubuntu-latest | |
needs: [test_unit, test_integration] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: checkout ocean.js repo | |
uses: actions/checkout@v3 | |
with: | |
repository: 'oceanprotocol/ocean.js' | |
path: 'ocean.js' | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: setup git config | |
run: | | |
# setup the username and email. I tend to use 'GitHub Actions Bot' with no email by default | |
git config user.name "GitHub Actions Bot" | |
git config user.email "<>" | |
- name: Create Guide & Commit if there are changes | |
run: npm run commit:guides | |
# update_docs: | |
# runs-on: ubuntu-latest | |
# needs: [test_unit, test_integration] | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: actions/setup-node@v4 | |
# with: | |
# node-version: '16' | |
# - name: checkout ocean.js repo | |
# uses: actions/checkout@v3 | |
# with: | |
# repository: 'oceanprotocol/ocean.js' | |
# path: 'ocean.js' | |
# ref: ${{ github.event.pull_request.head.sha }} | |
# - name: setup git config | |
# run: | | |
# # setup the username and email. I tend to use 'GitHub Actions Bot' with no email by default | |
# git config user.name "GitHub Actions Bot" | |
# git config user.email "<>" | |
# - name: Create updated docs & commit changes | |
# run: npm run commit:docs |