chore: use peer metadata to gauge protocol usage #7559
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" | |
- "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 }} |