fix: ensure user dial signals are respected (#2842) #5302
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 | |
pull_request: | |
branches: | |
- '**' | |
env: | |
CACHE_DIRS: | | |
./interop/dist | |
./interop/node_modules | |
./doc/node_modules | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
check: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- run: npm run --if-present lint | |
- run: npm run --if-present dep-check | |
- run: npm run --if-present docs:no-publish | |
- run: npm run --if-present doc-check | |
test-node: | |
needs: build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest] | |
node: [lts/*] | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- run: npm run --if-present test:node | |
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 | |
with: | |
flags: node | |
files: .coverage/*,packages/*/.coverage/* | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test-chrome: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- run: npm run --if-present test:chrome | |
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 | |
with: | |
flags: chrome | |
files: .coverage/*,packages/*/.coverage/* | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test-chrome-webworker: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- run: npm run --if-present test:chrome-webworker | |
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 | |
with: | |
flags: chrome-webworker | |
files: .coverage/*,packages/*/.coverage/* | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test-firefox: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- run: npm run --if-present test:firefox | |
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 | |
with: | |
flags: firefox | |
files: .coverage/*,packages/*/.coverage/* | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test-firefox-webworker: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- run: npm run --if-present test:firefox-webworker | |
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 | |
with: | |
flags: firefox-webworker | |
files: .coverage/*,packages/*/.coverage/* | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test-webkit: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
# https://github.com/actions/runner-images/issues/9733#issuecomment-2074590278 | |
- run: | | |
sudo rm /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update | |
- run: npx playwright install-deps | |
- run: npm run --if-present test:webkit | |
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 | |
with: | |
flags: webkit | |
files: .coverage/*,packages/*/.coverage/* | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test-electron-main: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- run: npx xvfb-maybe npm run --if-present test:electron-main | |
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 | |
with: | |
flags: electron-main | |
files: .coverage/*,packages/*/.coverage/* | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test-electron-renderer: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- run: npx xvfb-maybe npm run --if-present test:electron-renderer | |
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 | |
with: | |
flags: electron-renderer | |
files: .coverage/*,packages/*/.coverage/* | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test-interop: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- run: npm run test:interop -- --bail | |
transport-interop: | |
needs: build | |
runs-on: ${{ fromJSON(github.repository == 'libp2p/js-libp2p' && '["self-hosted", "linux", "x64", "4xlarge"]' || '"ubuntu-latest"') }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- name: Build images | |
run: (cd interop && make -j 4) | |
- name: Save package-lock.json as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: package locks | |
path: | | |
package-lock.json | |
interop/package-lock.json | |
- uses: libp2p/test-plans/.github/actions/run-interop-ping-test@master | |
with: | |
test-filter: js-libp2p-head | |
extra-versions: ${{ github.workspace }}/interop/node-version.json ${{ github.workspace }}/interop/chromium-version.json ${{ github.workspace }}/interop/firefox-version.json | |
s3-cache-bucket: ${{ vars.S3_LIBP2P_BUILD_CACHE_BUCKET_NAME }} | |
s3-access-key-id: ${{ vars.S3_LIBP2P_BUILD_CACHE_AWS_ACCESS_KEY_ID }} | |
s3-secret-access-key: ${{ secrets.S3_LIBP2P_BUILD_CACHE_AWS_SECRET_ACCESS_KEY }} | |
worker-count: 16 | |
release: | |
runs-on: ubuntu-latest | |
needs: [ | |
test-node, | |
test-chrome, | |
test-chrome-webworker, | |
test-firefox, | |
test-firefox-webworker, | |
test-electron-main, | |
test-electron-renderer, | |
test-interop , | |
transport-interop | |
] | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
permissions: | |
contents: write | |
id-token: write | |
pull-requests: write | |
steps: | |
- uses: googleapis/release-please-action@v4 | |
id: release | |
with: | |
token: ${{ secrets.UCI_GITHUB_TOKEN || github.token }} | |
manifest-file: .release-please-manifest.json | |
config-file: .release-please.json | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
registry-url: 'https://registry.npmjs.org' | |
- uses: ipfs/aegir/actions/cache-node-modules@master | |
with: | |
directories: ${{ env.CACHE_DIRS }} | |
- uses: ipfs/aegir/actions/docker-login@master | |
with: | |
docker-token: ${{ secrets.DOCKER_TOKEN }} | |
docker-username: ${{ secrets.DOCKER_USERNAME }} | |
- if: ${{ steps.release.outputs.releases_created == 'true' }} | |
name: Run release version | |
run: | | |
git update-index --assume-unchanged packages/libp2p/src/version.ts | |
npm run --if-present release | |
env: | |
GITHUB_TOKEN: ${{ secrets.UCI_GITHUB_TOKEN || github.token }} | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- if: ${{ steps.release.outputs.releases_created != 'true' }} | |
name: Run release rc | |
run: | | |
git update-index --assume-unchanged packages/libp2p/src/version.ts | |
npm run --if-present release:rc | |
env: | |
GITHUB_TOKEN: ${{ secrets.UCI_GITHUB_TOKEN || github.token }} | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |