Feature/add enterprisefee getters #3916
Workflow file for this run
This file contains hidden or 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: | |
| pull_request: | |
| branches: | |
| - main | |
| 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 --with-typesense 2>&1 > start_ocean.log & | |
| - name: Install deps & build | |
| run: npm ci && npm run build:metadata | |
| - name: Wait for node to be ready | |
| run: | | |
| max_attempts=60 | |
| attempt=1 | |
| echo "Waiting for node container to be ready (timeout: 300s)..." | |
| while [ $attempt -le $max_attempts ]; do | |
| if [ "$(docker inspect -f '{{.State.Running}}' ocean-node-1 2>/dev/null)" = "true" ]; then | |
| echo "Node container is running!" | |
| break | |
| fi | |
| echo "Attempt $attempt/$max_attempts: Node container not ready yet, waiting..." | |
| if [ $attempt -eq $max_attempts ]; then | |
| echo "Error: Node container failed to start within 300 seconds" | |
| docker ps -a | |
| docker inspect ocean-node-1 | |
| exit 1 | |
| fi | |
| sleep 10 | |
| attempt=$((attempt + 1)) | |
| done | |
| - 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: | | |
| export NODE_VERSION=pr-1097 | |
| bash -x start_ocean.sh --with-typesense 2>&1 > start-node.log & | |
| - name: Install deps & build | |
| run: npm ci && npm run build:metadata | |
| - name: Wait for node to be ready | |
| run: | | |
| max_attempts=60 | |
| attempt=1 | |
| echo "Waiting for node container to be ready (timeout: 300s)..." | |
| while [ $attempt -le $max_attempts ]; do | |
| if [ "$(docker inspect -f '{{.State.Running}}' ocean-node-1 2>/dev/null)" = "true" ]; then | |
| echo "Node container is running!" | |
| break | |
| fi | |
| echo "Attempt $attempt/$max_attempts: Node container not ready yet, waiting..." | |
| if [ $attempt -eq $max_attempts ]; then | |
| echo "Error: Node container failed to start within 300 seconds" | |
| docker ps -a | |
| docker inspect ocean-node-1 | |
| exit 1 | |
| fi | |
| sleep 10 | |
| attempt=$((attempt + 1)) | |
| done | |
| - name: integration | |
| run: npm run test:integration:cover | |
| env: | |
| INDEXING_RETRY_INTERVAL: 4000 | |
| INDEXING_MAX_RETRIES: 120 | |
| NODE_URL: 'http://127.0.0.1:8001' | |
| - name: docker logs | |
| run: docker logs ocean-ocean-contracts-1 && docker logs ocean-node-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/[email protected] | |
| with: | |
| name: coverage-unit | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: coverage-integration | |
| 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 |