name: CI on: push: branches: - "master" - "staging" - "trying" pull_request: workflow_dispatch: inputs: nim_wakunode_image: description: "Docker hub image name taken from https://hub.docker.com/r/wakuorg/nwaku/tags. Format: wakuorg/nwaku:v0.20.0" required: false type: string env: NODE_JS: "20" jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: repository: waku-org/js-waku - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_JS }} - uses: ./.github/actions/npm - run: npm run build - run: npm run check - run: npm run doc proto: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: repository: waku-org/js-waku - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_JS }} - uses: ./.github/actions/npm - name: Generate protobuf code run: | npm run proto npm run fix - name: Check all protobuf code was committed shell: bash run: | res=$(git status --short --ignore-submodules) echo -n "'$res'" # For debug purposes [ $(echo -n "$res"|wc -l) -eq 0 ] browser: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: repository: waku-org/js-waku - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_JS }} - uses: ./.github/actions/npm - run: npx playwright install --with-deps - run: npm run build:esm - run: npm run test:browser build_rln_tree: if: false # This condition disables the job runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: repository: waku-org/js-waku - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_JS }} - name: Check for existing RLN tree artifact id: check-artifact uses: actions/github-script@v6 with: script: | const artifact = await github.rest.actions.listWorkflowRunArtifacts({ owner: context.repo.owner, repo: context.repo.repo, run_id: context.runId }); console.log(artifact); const foundArtifact = artifact.data.artifacts.find(art => art.name === 'rln_tree.tar.gz'); if (foundArtifact) { core.setOutput('artifact_id', foundArtifact.id); core.setOutput('artifact_found', 'true'); } else { core.setOutput('artifact_found', 'false'); } - name: Download RLN tree artifact if: steps.check-artifact.outputs.artifact_found == 'true' uses: actions/download-artifact@v4 with: name: rln_tree.tar.gz path: /tmp - uses: ./.github/actions/npm - name: Sync rln tree and save artifact run: | mkdir -p /tmp/rln_tree.db npm run build:esm npm run sync-rln-tree tar -czf rln_tree.tar.gz -C /tmp/rln_tree.db . - name: Upload artifact uses: actions/upload-artifact@v4 with: name: rln_tree.tar.gz path: rln_tree.tar.gz node: uses: ./.github/workflows/test-node.yml secrets: inherit with: nim_wakunode_image: ${{ inputs.nim_wakunode_image || 'wakuorg/nwaku:v0.31.0' }} test_type: node allure_reports: true node_optional: uses: ./.github/workflows/test-node.yml with: nim_wakunode_image: ${{ inputs.nim_wakunode_image || 'wakuorg/nwaku:v0.31.0' }} test_type: node-optional node_with_nwaku_master: uses: ./.github/workflows/test-node.yml with: nim_wakunode_image: harbor.status.im/wakuorg/nwaku:latest test_type: nwaku-master maybe-release: name: release runs-on: ubuntu-latest if: github.event_name == 'push' && github.ref == 'refs/heads/master' needs: [check, proto, browser, node] steps: - uses: google-github-actions/release-please-action@v3 id: release with: command: manifest monorepo-tags: true token: ${{ secrets.CI_TOKEN }} - uses: actions/checkout@v3 with: repository: waku-org/js-waku if: ${{ steps.release.outputs.releases_created }} - uses: actions/setup-node@v3 if: ${{ steps.release.outputs.releases_created }} with: node-version: ${{ env.NODE_JS }} registry-url: "https://registry.npmjs.org" - run: npm install if: ${{ steps.release.outputs.releases_created }} - run: npm run build if: ${{ steps.release.outputs.releases_created }} - run: npm run publish if: ${{ steps.release.outputs.releases_created }} env: NODE_AUTH_TOKEN: ${{ secrets.NPM_JS_WAKU_PUBLISH }}