From 378a33aedf42d0b9cbf56da0258c2436261faf8c Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 3 Jul 2024 15:05:39 +1000 Subject: [PATCH 01/16] feat: integration of new CI system --- .github/workflows/ci.yml | 268 +++++++++++++++++++++ .github/workflows/codesee-arch-diagram.yml | 23 -- README.md | 5 +- flake.lock | 172 +++++++++++++ flake.nix | 54 +++++ pkgs.nix | 4 - shell.nix | 45 ---- 7 files changed, 495 insertions(+), 76 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/codesee-arch-diagram.yml create mode 100644 flake.lock create mode 100644 flake.nix delete mode 100644 pkgs.nix delete mode 100644 shell.nix diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..b07beb3 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,268 @@ +name: CI + +on: + push: + branches: + - staging + - feature* + +jobs: + check-lint: + name: "Check / Lint" + runs-on: ubuntu-latest + container: + image: ghcr.io/matrixai/github-runner + steps: + - uses: actions/checkout@v4 + - name: Run linting + run: | + nix develop --command bash -c $' + npm run lint + npm run lint-shell + ' + + check-test: + name: "Check / Test" + runs-on: ubuntu-latest + container: + image: ghcr.io/matrixai/github-runner + steps: + - uses: actions/checkout@v4 + - name: Run tests + run: | + nix develop .#ci --command bash -c $' + npm run prebuild --verbose + npm test -- --ci --coverage + ' + - uses: actions/upload-artifact@v4 + with: + name: coverage-report + path: tmp/coverage/cobertura-coverage.xml + + build-pull: + name: "Build / Pull Request" + runs-on: ubuntu-latest + needs: [check-lint, check-test] + if: github.ref == 'refs/heads/staging' + steps: + - uses: actions/checkout@v4 + - name: Create pull request + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + run: | + gh pr create \ + --head staging \ + --base master \ + --title "ci: merge staging to master" \ + --body "This is an automatic PR generated by the CI/CD pipeline. This will be automatically fast-forward merged if successful." \ + --assignee "@me" \ + --no-maintainer-edit || true + printf "Pipeline Attempt on $GITHUB_RUN_ID for $GITHUB_SHA\n\n$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \ + | gh pr comment staging \ + --body-file - \ + --repo "$GITHUB_REPOSITORY" + + build-dist: + name: "Build / Dist" + runs-on: ubuntu-latest + container: + image: ghcr.io/matrixai/github-runner + needs: [check-lint, check-test] + if: github.ref == 'refs/heads/staging' + steps: + - uses: actions/checkout@v4 + - run: | + nix develop .#ci --command bash -c $' + npm run build --ignore-scripts --verbose + ' + - uses: actions/upload-artifact@v4 + with: + name: dist + path: ./dist + + build-platforms: + name: "Build / Platforms" + runs-on: ${{ matrix.os }} + container: + image: ${{ matrix.platform == 'linux' && 'ghcr.io/matrixai/github-runner' || null }} + needs: build-dist + if: github.ref == 'refs/heads/staging' + strategy: + fail-fast: false + matrix: + include: + - platform: linux + os: ubuntu-latest + env: + npm_config_arch: "x64" + script: | + nix develop .#ci --command bash -c $' + npm run prebuild --verbose + npm test -- --ci --coverage + ' + - platform: windows + os: windows-latest + env: + npm_config_devdir: "${{ github.workspace }}/tmp/node-gyp" + npm_config_arch: "x64" + script: | + mkdir -Force "$GITHUB_WORKSPACE/tmp" + Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1 + ./scripts/choco-install.ps1 + refreshenv + npm install --ignore-scripts + $env:Path = "$(npm root)\.bin;" + $env:Path + npm test -- --ci --coverage + - platform: macos + os: macos-latest + env: + npm_config_devdir: "${{ github.workspace }}/tmp/node-gyp" + script: | + eval "$(brew shellenv)" + ./scripts/brew-install.sh + hash -r + npm install --ignore-scripts + export PATH="$(npm root)/.bin:$PATH" + npm test -- --ci --coverage + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '20' + - uses: actions/download-artifact@v4 + with: + name: dist + path: ./dist + - name: Build + env: ${{ matrix.env }} + run: ${{ matrix.script }} + - uses: actions/upload-artifact@v4 + with: + name: builds-${{ matrix.platform }} + path: ./builds + + build-prerelease: + name: "Build / Pre-release" + runs-on: ubuntu-latest + container: + image: ghcr.io/matrixai/github-runner + concurrency: + group: build-prerelease + cancel-in-progress: false + needs: [check-lint, check-test] + if: > + github.ref == 'refs/heads/staging' && + startsWith(github.ref, 'refs/tags/v') && + contains(github.ref, '-') + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + pattern: builds* + path: builds + merge-multiple: true + - name: Run pre-release + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + run: | + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ./.npmrc + echo 'Publishing library prerelease' + nix develop .#ci --command bash -c $' + npm publish --tag prerelease --access public + ' + for d in prebuild/*; do + tar \ + --create \ + --verbose \ + --file="prebuild/$(basename $d).tar" \ + --directory=prebuild \ + "$(basename $d)" + done + nix develop .#ci --command bash -c $' + gh release \ + create "$GITHUB_REF_NAME" \ + prebuild/*.tar \ + --title "$GITHUB_REF_NAME-$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \ + --notes "" \ + --prerelease \ + --target staging \ + --repo "$GITHUB_REPOSITORY" + ' + rm -f ./.npmrc + + integration-merge: + name: "Integration / Merge" + runs-on: ubuntu-latest + concurrency: + group: integration-merge + cancel-in-progress: true + needs: [build-pull, build-platforms] + if: github.ref == 'refs/heads/staging' + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_TOKEN }} + - name: Merge into master + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + GIT_AUTHOR_EMAIL: ${{ secrets.GIT_AUTHOR_EMAIL }} + GIT_AUTHOR_NAME: ${{ secrets.GIT_AUTHOR_NAME }} + GIT_COMMITTER_EMAIL: ${{ secrets.GIT_COMMITTER_EMAIL }} + GIT_COMMITTER_NAME: ${{ secrets.GIT_COMMITTER_NAME }} + run: | + printf "Pipeline Succeeded on $GITHUB_RUN_ID for $GITHUB_SHA\n\n$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \ + | gh pr comment staging \ + --body-file - \ + --repo "$GITHUB_REPOSITORY" + git checkout master + git merge --ff-only "$GITHUB_SHA" + git push origin master + + release-distribution: + name: "Release / Distribution" + runs-on: ubuntu-latest + container: + image: ghcr.io/matrixai/github-runner + concurrency: + group: release-distribution + cancel-in-progress: false + needs: integration-merge + if: > + github.ref == 'refs/heads/staging' && + startsWith(github.ref, 'refs/tags/v') && + !contains(github.ref, '-') + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + pattern: builds* + path: builds + merge-multiple: true + - name: Run release + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + run: | + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ./.npmrc + echo 'Publishing library' + nix develop .#ci --command bash -c $' + npm publish --access public + ' + for d in prebuild/*; do + tar \ + --create \ + --verbose \ + --file="prebuild/$(basename $d).tar" \ + --directory=prebuild \ + "$(basename $d)" + done + nix develop .#ci --command bash -c $' + gh release \ + create "$GITHUB_REF_NAME" \ + prebuild/*.tar \ + --title "$GITHUB_REF_NAME-$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \ + --notes "" \ + --target master \ + --repo "$GITHUB_REPOSITORY" + ' + rm -f ./.npmrc diff --git a/.github/workflows/codesee-arch-diagram.yml b/.github/workflows/codesee-arch-diagram.yml deleted file mode 100644 index 80f58e6..0000000 --- a/.github/workflows/codesee-arch-diagram.yml +++ /dev/null @@ -1,23 +0,0 @@ -# This workflow was added by CodeSee. Learn more at https://codesee.io/ -# This is v2.0 of this workflow file -on: - push: - branches: - - staging - pull_request_target: - types: [opened, synchronize, reopened] - -name: CodeSee - -permissions: read-all - -jobs: - codesee: - runs-on: ubuntu-latest - continue-on-error: true - name: Analyze the repo with CodeSee - steps: - - uses: Codesee-io/codesee-action@v2 - with: - codesee-token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }} - codesee-url: https://app.codesee.io diff --git a/README.md b/README.md index ad13225..084c151 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,5 @@ # js-mdns -staging:[![pipeline status](https://gitlab.com/MatrixAI/open-source/js-mdns/badges/staging/pipeline.svg)](https://gitlab.com/MatrixAI/open-source/js-mdns/commits/staging) -master:[![pipeline status](https://gitlab.com/MatrixAI/open-source/js-mdns/badges/master/pipeline.svg)](https://gitlab.com/MatrixAI/open-source/js-mdns/commits/master) - ## Installation ```sh @@ -11,7 +8,7 @@ npm install --save @matrixai/mdns ## Development -Run `nix-shell`, and once you're inside, you can use: +Run `nix develop`, and once you're inside, you can use: ```sh # install (or reinstall packages from package.json) diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..a9491cb --- /dev/null +++ b/flake.lock @@ -0,0 +1,172 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1716357214, + "narHash": "sha256-gQh7A8QOJLUhO7bdtQ8ZW9/KM70ciKskxSYgC1Lzm6g=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e69e710edfed397959507bcee120ec8a9c7ff03e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-matrix": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs", + "polykey-cli": "polykey-cli" + }, + "locked": { + "lastModified": 1718671111, + "narHash": "sha256-7mgQvoUeAUeLkCh+wub8JNTT6x7onmIFyT90FT4uw88=", + "owner": "matrixai", + "repo": "nixpkgs-matrix", + "rev": "f00e00b892026a8588c9c01edde195585303ee84", + "type": "github" + }, + "original": { + "owner": "matrixai", + "repo": "nixpkgs-matrix", + "type": "github" + } + }, + "polykey-cli": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": [ + "nixpkgs-matrix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718605364, + "narHash": "sha256-1JVAPfZ3s47ehaAaDY22UIAeYcxlB/5CSY4VYHPKf34=", + "owner": "MatrixAI", + "repo": "Polykey-CLI", + "rev": "5973090c8fab456d048bac93b378af712dc5590f", + "type": "github" + }, + "original": { + "owner": "MatrixAI", + "repo": "Polykey-CLI", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs-matrix", + "nixpkgs" + ], + "nixpkgs-matrix": "nixpkgs-matrix" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..83f22a1 --- /dev/null +++ b/flake.nix @@ -0,0 +1,54 @@ +{ + inputs = { + nixpkgs.url = "github:nixos/nixpkgs"; + nixpkgs.follows = "nixpkgs-matrix/nixpkgs"; + nixpkgs-matrix.url = "github:matrixai/nixpkgs-matrix"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { nixpkgs, flake-utils, ... }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { inherit system; }; + + shell = { ci ? false }: with pkgs; mkShell { + nativeBuildInputs = [ + nodejs_20 + nodejs.python + shellcheck + gitAndTools.gh + clang-tools + ]; + NIX_DONT_SET_RPATH = true; + NIX_NO_SELF_RPATH = true; + shellHook = '' + echo "Entering $(npm pkg get name)" + set -o allexport + . ./.env + set +o allexport + set -v + ${ + lib.optionalString ci + '' + set -o errexit + set -o nounset + set -o pipefail + shopt -s inherit_errexit + '' + } + mkdir --parents "$(pwd)/tmp" + export PATH="$(pwd)/dist/bin:$(npm root)/.bin:$PATH" + export npm_config_nodedir="${nodejs}" + export NIX_DEBUG=1 + npm install --ignore-scripts + set +v + ''; + }; + in + { + devShells = { + default = shell { ci = false; }; + ci = shell { ci = true; }; + }; + }); +} diff --git a/pkgs.nix b/pkgs.nix deleted file mode 100644 index 2997ae2..0000000 --- a/pkgs.nix +++ /dev/null @@ -1,4 +0,0 @@ -import ( - let rev = "ea5234e7073d5f44728c499192544a84244bf35a"; in - builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz" -) diff --git a/shell.nix b/shell.nix deleted file mode 100644 index 387cc47..0000000 --- a/shell.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ pkgs ? import ./pkgs.nix {}, ci ? false }: - -with pkgs; -mkShell { - nativeBuildInputs = [ - nodejs_20 - nodejs.python - shellcheck - gitAndTools.gh - clang-tools - ]; - # Don't set rpath for native addons - NIX_DONT_SET_RPATH = true; - NIX_NO_SELF_RPATH = true; - shellHook = '' - echo "Entering $(npm pkg get name)" - set -o allexport - . ./.env - set +o allexport - set -v - ${ - lib.optionalString ci - '' - set -o errexit - set -o nounset - set -o pipefail - shopt -s inherit_errexit - '' - } - mkdir --parents "$(pwd)/tmp" - - # Built executables and NPM executables - export PATH="$(pwd)/dist/bin:$(npm root)/.bin:$PATH" - - # Path to headers used by node-gyp for native addons - export npm_config_nodedir="${nodejs}" - - # Verbose logging of the Nix compiler wrappers - export NIX_DEBUG=1 - - npm install --ignore-scripts - - set +v - ''; -} From 26c379a059e34fe047d921a966952e03d3ca6b86 Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 3 Jul 2024 15:17:59 +1000 Subject: [PATCH 02/16] fix: remove `.gitlab-ci.yml` --- .gitlab-ci.yml | 369 ------------------------------------------------- 1 file changed, 369 deletions(-) delete mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 16657cc..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,369 +0,0 @@ -workflow: - rules: - # Disable merge request pipelines - - if: $CI_MERGE_REQUEST_ID - when: never - - when: always - -variables: - GIT_SUBMODULE_STRATEGY: recursive - GH_PROJECT_PATH: "MatrixAI/${CI_PROJECT_NAME}" - GH_PROJECT_URL: "https://${GITHUB_TOKEN}@github.com/${GH_PROJECT_PATH}.git" - # Cache .npm - npm_config_cache: "${CI_PROJECT_DIR}/tmp/npm" - # Prefer offline node module installation - npm_config_prefer_offline: "true" - # Homebrew cache only used by macos runner - HOMEBREW_CACHE: "${CI_PROJECT_DIR}/tmp/Homebrew" - -default: - interruptible: true - before_script: - # Replace this in windows runners that use powershell - # with `mkdir -Force "$CI_PROJECT_DIR/tmp"` - - mkdir -p "$CI_PROJECT_DIR/tmp" - -# Cached directories shared between jobs & pipelines per-branch per-runner -cache: - key: $CI_COMMIT_REF_SLUG - # Preserve cache even if job fails - when: 'always' - paths: - - ./tmp/npm/ - # Homebrew cache is only used by the macos runner - - ./tmp/Homebrew - # Chocolatey cache is only used by the windows runner - - ./tmp/chocolatey/ - # `jest` cache is configured in jest.config.js - - ./tmp/jest/ - # `npm_config_devdir` cache for `node-gyp` headers and libraries used by windows and macos - - ./tmp/node-gyp - -stages: - - check # Linting, unit tests - - build # Cross-platform library compilation, unit tests - - integration # Cross-platform application bundling, integration tests, and pre-release - - release # Cross-platform distribution and deployment - -image: registry.gitlab.com/matrixai/engineering/maintenance/gitlab-runner - -check:lint: - stage: check - needs: [] - script: - - > - nix-shell --arg ci true --run $' - npm run lint; - npm run lint-shell; - ' - rules: - # Runs on feature and staging commits and ignores version commits - - if: $CI_COMMIT_BRANCH =~ /^(?:feature.*|staging)$/ && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - # Runs on tag pipeline where the tag is a prerelease or release version - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - # Manually run on commits other than master and ignore version commits - - if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != 'master' && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - when: manual - -check:test: - stage: check - needs: [] - script: - - > - nix-shell --arg ci true --run $' - npm run prebuild --verbose; - npm test -- --ci --coverage; - ' - artifacts: - when: always - reports: - junit: - - ./tmp/junit/junit.xml - coverage_report: - coverage_format: cobertura - path: ./tmp/coverage/cobertura-coverage.xml - coverage: '/All files[^|]*\|[^|]*\s+([\d\.]+)/' - rules: - # Runs on feature commits and ignores version commits - - if: $CI_COMMIT_BRANCH =~ /^feature.*$/ && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - # Manually run on commits other than master and staging and ignore version commits - - if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH !~ /^(?:master|staging)$/ && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - when: manual - -build:merge: - stage: build - needs: [] - allow_failure: true - script: - # Required for `gh pr create` - - git remote add upstream "$GH_PROJECT_URL" - - > - nix-shell --arg ci true --run $' - gh pr create \ - --head staging \ - --base master \ - --title "ci: merge staging to master" \ - --body "This is an automatic PR generated by the pipeline CI/CD. This will be automatically fast-forward merged if successful." \ - --assignee "@me" \ - --no-maintainer-edit \ - --repo "$GH_PROJECT_PATH" || true; - printf "Pipeline Attempt on ${CI_PIPELINE_ID} for ${CI_COMMIT_SHA}\n\n${CI_PIPELINE_URL}" \ - | gh pr comment staging \ - --body-file - \ - --repo "$GH_PROJECT_PATH"; - ' - rules: - # Runs on staging commits and ignores version commits - - if: $CI_COMMIT_BRANCH == 'staging' && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - # Runs on tag pipeline where the tag is a prerelease or release version - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - -build:dist: - stage: build - needs: [] - script: - - > - nix-shell --arg ci true --run $' - npm run build --ignore-scripts --verbose; - ' - artifacts: - when: always - paths: - - ./dist - rules: - # Runs on staging commits and ignores version commits - - if: $CI_COMMIT_BRANCH == 'staging' && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - # Runs on tag pipeline where the tag is a prerelease or release version - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - -build:linux: - stage: build - needs: [] - variables: - # Only x64 architecture is needed - npm_config_arch: "x64" - script: - - > - nix-shell --arg ci true --run $' - npm run prebuild --verbose; - npm test -- --ci --coverage; - ' - artifacts: - when: always - reports: - junit: - - ./tmp/junit/junit.xml - coverage_report: - coverage_format: cobertura - path: ./tmp/coverage/cobertura-coverage.xml - paths: - - ./prebuild/ - coverage: '/All files[^|]*\|[^|]*\s+([\d\.]+)/' - rules: - # Runs on staging commits and ignores version commits - - if: $CI_COMMIT_BRANCH == 'staging' && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - # Runs on tag pipeline where the tag is a prerelease or release version - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - -build:windows: - stage: build - needs: [] - tags: - - windows - variables: - # Location node-gyp installed headers and static libraries - npm_config_devdir: "${CI_PROJECT_DIR}/tmp/node-gyp" - # Only x64 architecture is needed - npm_config_arch: "x64" - before_script: - - mkdir -Force "$CI_PROJECT_DIR/tmp" - # so that refreshenv will resolve to the correct Powershell alias - - Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1 - script: - - .\scripts\choco-install.ps1 - - refreshenv - - npm install --ignore-scripts - - $env:Path = "$(npm root)\.bin;" + $env:Path - # - npm run prebuild --verbose; - - npm test -- --ci --coverage - artifacts: - when: always - reports: - junit: - - ./tmp/junit/junit.xml - coverage_report: - coverage_format: cobertura - path: ./tmp/coverage/cobertura-coverage.xml - paths: - - ./prebuild/ - coverage: '/All files[^|]*\|[^|]*\s+([\d\.]+)/' - rules: - # Runs on staging commits and ignores version commits - - if: $CI_COMMIT_BRANCH == 'staging' && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - # Runs on tag pipeline where the tag is a prerelease or release version - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - -build:macos: - stage: build - needs: [] - tags: - - saas-macos-medium-m1 - variables: - # Location node-gyp installed headers and static libraries - npm_config_devdir: "${CI_PROJECT_DIR}/tmp/node-gyp" - image: macos-12-xcode-14 - script: - - eval "$(brew shellenv)" - - ./scripts/brew-install.sh - - hash -r - - npm install --ignore-scripts - - export PATH="$(npm root)/.bin:$PATH" - # - npm run prebuild --verbose -- --arch x64 - # - npm run prebuild --verbose -- --arch arm64 - - npm test -- --ci --coverage - artifacts: - when: always - reports: - junit: - - ./tmp/junit/junit.xml - coverage_report: - coverage_format: cobertura - path: ./tmp/coverage/cobertura-coverage.xml - paths: - - ./prebuild/ - coverage: '/All files[^|]*\|[^|]*\s+([\d\.]+)/' - rules: - # Runs on staging commits and ignores version commits - - if: $CI_COMMIT_BRANCH == 'staging' && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - # Runs on tag pipeline where the tag is a prerelease or release version - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - -build:prerelease: - stage: build - needs: - - build:dist - - build:linux - - build:windows - - build:macos - # Don't interrupt publishing job - interruptible: false - variables: - # Set the prerelease tag for prepublishOnly script - npm_config_tag: 'prerelease' - script: - - echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ./.npmrc - - echo 'Publishing library prerelease' - - > - nix-shell --arg ci true --run $' - npm publish --tag prerelease --access public; - ' - - > - for d in prebuild/*; do - tar \ - --create \ - --verbose \ - --file="prebuild/$(basename $d).tar" \ - --directory=prebuild \ - "$(basename $d)"; - done - - > - nix-shell --arg ci true --run $' - gh release \ - create "$CI_COMMIT_TAG" \ - prebuild/*.tar \ - --title "${CI_COMMIT_TAG}-$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \ - --notes "" \ - --prerelease \ - --target staging \ - --repo "$GH_PROJECT_PATH"; - ' - after_script: - - rm -f ./.npmrc - rules: - # Only runs on tag pipeline where the tag is a prerelease version - # This requires dependencies to also run on tag pipeline - # However version tag comes with a version commit - # Dependencies must not run on the version commit - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+-.*[0-9]+$/ - -integration:merge: - stage: integration - needs: - - build:merge - - job: build:linux - optional: true - - job: build:windows - optional: true - - job: build:macos - optional: true - # Requires mutual exclusion - resource_group: integration:merge - allow_failure: true - variables: - # Ensure that CI/CD is fetching all commits - # this is necessary to checkout origin/master - # and to also merge origin/staging - GIT_DEPTH: 0 - script: - - > - nix-shell --arg ci true --run $' - printf "Pipeline Succeeded on ${CI_PIPELINE_ID} for ${CI_COMMIT_SHA}\n\n${CI_PIPELINE_URL}" \ - | gh pr comment staging \ - --body-file - \ - --repo "$GH_PROJECT_PATH"; - ' - - git remote add upstream "$GH_PROJECT_URL" - - git checkout origin/master - # Merge up to the current commit (not the latest commit) - - git merge --ff-only "$CI_COMMIT_SHA" - - git push upstream HEAD:master - rules: - # Runs on staging commits and ignores version commits - - if: $CI_COMMIT_BRANCH == 'staging' && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - # Runs on tag pipeline where the tag is a prerelease or release version - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/ - -release:distribution: - stage: release - needs: - - build:dist - - build:linux - - build:windows - - build:macos - - integration:merge - # Don't interrupt publishing job - interruptible: false - script: - - echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ./.npmrc - - echo 'Publishing library' - - > - nix-shell --arg ci true --run $' - npm publish --access public; - ' - - > - for d in prebuild/*; do - tar \ - --create \ - --verbose \ - --file="prebuild/$(basename $d).tar" \ - --directory=prebuild \ - "$(basename $d)"; - done - - > - nix-shell --arg ci true --run $' - gh release \ - create "$CI_COMMIT_TAG" \ - prebuild/*.tar \ - --title "${CI_COMMIT_TAG}-$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \ - --notes "" \ - --target master \ - --repo "$GH_PROJECT_PATH"; - ' - after_script: - - rm -f ./.npmrc - rules: - # Only runs on tag pipeline where the tag is a release version - # This requires dependencies to also run on tag pipeline - # However version tag comes with a version commit - # Dependencies must not run on the version commit - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/ From 682e720cfed5fe9382fd390d26b15979a0730029 Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:19:44 +1000 Subject: [PATCH 03/16] ci: refactor workflows --- .github/workflows/merge.yml | 144 ++++++++++++++++ .github/workflows/{ci.yml => release.yml} | 198 +++++++++------------- README.md | 26 +-- package-lock.json | 18 ++ 4 files changed, 252 insertions(+), 134 deletions(-) create mode 100644 .github/workflows/merge.yml rename .github/workflows/{ci.yml => release.yml} (55%) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml new file mode 100644 index 0000000..72e7943 --- /dev/null +++ b/.github/workflows/merge.yml @@ -0,0 +1,144 @@ +name: CI / Merge + +on: + push: + branches: + - staging + - feature* + +jobs: + check-lint: + name: "Check / Lint" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Run linting + run: | + npm install + npm run lint + npm run lint-shell + + check-build: + name: "Check / Build" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Run build + run: | + npm install + npm run build --verbose + + check-matrix: + name: "Check / Matrix" + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v4 + - id: set-matrix + run: | + files=$(find tests/* -maxdepth 0 -type d | sed 's/.*/"&"/' | paste -sd, -) + files=$files,$(find tests/* -maxdepth 0 -type f | grep -e "/*.test.ts" | sed 's/.*/"&"/' | paste -sd, -) + if [ -z "$files" ]; then + echo "matrix={\"shard\":[]}" >> $GITHUB_OUTPUT + else + echo "matrix={\"shard\":[$files]}" >> $GITHUB_OUTPUT + fi + + check-test: + name: "Check / Test" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: ${{fromJson(needs.check-matrix.outputs.matrix)}} + needs: check-matrix + steps: + - uses: actions/checkout@v4 + - name: Set artifact name + run: echo "SLUG=$(echo ${{ matrix.shard }} | sed 's/[/.]/-/g')" >> $GITHUB_ENV + - name: Run tests + run: | + npm install + npm run test -- \ + --coverageReporters json \ + --coverage \ + "${{ matrix.shard }}" + mv tmp/coverage/coverage-final.json "tmp/coverage/${{ env.SLUG }}.json" + - uses: actions/upload-artifact@v4 + with: + name: coverage-artifacts-${{ env.SLUG }} + path: tmp/coverage/ + + check-coverage: + name: "Check / Coverage" + runs-on: ubuntu-latest + needs: check-test + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + pattern: coverage-artifacts-* + path: tmp/coverage/ + merge-multiple: true + - run: rm .npmrc + - name: Merge coverage results + run: npx nyc merge tmp/coverage/ tmp/coverage/cobertura-coverage.json + - uses: actions/upload-artifact@v4 + with: + name: cobertura-coverage + path: tmp/coverage/cobertura-coverage.json + + build-pull: + name: "Build / Pull Request" + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/staging' + steps: + - uses: actions/checkout@v4 + - name: Create pull request + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + run: | + gh pr create \ + --head staging \ + --base master \ + --title "ci: merge staging to master" \ + --body "This is an automatic PR generated by the CI/CD pipeline. This will be automatically fast-forward merged if successful." \ + --assignee "@me" \ + --no-maintainer-edit || true + printf "Pipeline Attempt on $GITHUB_RUN_ID for $GITHUB_SHA\n\n$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \ + | gh pr comment staging \ + --body-file - \ + --repo "$GITHUB_REPOSITORY" + + integration-merge: + name: "Integration / Merge" + runs-on: ubuntu-latest + concurrency: + group: integration-merge + cancel-in-progress: true + needs: + - check-lint + - check-build + - check-test + - build-pull + if: github.ref == 'refs/heads/staging' + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_TOKEN }} + - name: Merge into master + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + GIT_AUTHOR_EMAIL: ${{ secrets.GIT_AUTHOR_EMAIL }} + GIT_AUTHOR_NAME: ${{ secrets.GIT_AUTHOR_NAME }} + GIT_COMMITTER_EMAIL: ${{ secrets.GIT_COMMITTER_EMAIL }} + GIT_COMMITTER_NAME: ${{ secrets.GIT_COMMITTER_NAME }} + run: | + printf "Pipeline Succeeded on $GITHUB_RUN_ID for $GITHUB_SHA\n\n$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \ + | gh pr comment staging \ + --body-file - \ + --repo "$GITHUB_REPOSITORY" + git checkout master + git merge --ff-only "$GITHUB_SHA" + git push origin master diff --git a/.github/workflows/ci.yml b/.github/workflows/release.yml similarity index 55% rename from .github/workflows/ci.yml rename to .github/workflows/release.yml index b07beb3..8f73b6a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/release.yml @@ -1,92 +1,100 @@ -name: CI +name: CI / Release on: push: - branches: - - staging - - feature* + tags: + - v** jobs: check-lint: name: "Check / Lint" runs-on: ubuntu-latest - container: - image: ghcr.io/matrixai/github-runner steps: - uses: actions/checkout@v4 - name: Run linting run: | - nix develop --command bash -c $' + npm install npm run lint npm run lint-shell - ' - check-test: - name: "Check / Test" + check-build: + name: "Check / Build" runs-on: ubuntu-latest - container: - image: ghcr.io/matrixai/github-runner steps: - uses: actions/checkout@v4 - - name: Run tests + - name: Run build run: | - nix develop .#ci --command bash -c $' - npm run prebuild --verbose - npm test -- --ci --coverage - ' + npm install + npm run build --verbose - uses: actions/upload-artifact@v4 with: - name: coverage-report - path: tmp/coverage/cobertura-coverage.xml + name: dist + path: ./dist - build-pull: - name: "Build / Pull Request" + check-matrix: + name: "Check / Matrix" runs-on: ubuntu-latest - needs: [check-lint, check-test] - if: github.ref == 'refs/heads/staging' + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - uses: actions/checkout@v4 - - name: Create pull request - env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} + - id: set-matrix run: | - gh pr create \ - --head staging \ - --base master \ - --title "ci: merge staging to master" \ - --body "This is an automatic PR generated by the CI/CD pipeline. This will be automatically fast-forward merged if successful." \ - --assignee "@me" \ - --no-maintainer-edit || true - printf "Pipeline Attempt on $GITHUB_RUN_ID for $GITHUB_SHA\n\n$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \ - | gh pr comment staging \ - --body-file - \ - --repo "$GITHUB_REPOSITORY" + files=$(find tests/* -maxdepth 0 -type d | sed 's/.*/"&"/' | paste -sd, -) + files=$files,$(find tests/* -maxdepth 0 -type f | grep -e "/*.test.ts" | sed 's/.*/"&"/' | paste -sd, -) + if [ -z "$files" ]; then + echo "matrix={\"shard\":[]}" >> $GITHUB_OUTPUT + else + echo "matrix={\"shard\":[$files]}" >> $GITHUB_OUTPUT + fi - build-dist: - name: "Build / Dist" + check-test: + name: "Check / Test" runs-on: ubuntu-latest - container: - image: ghcr.io/matrixai/github-runner - needs: [check-lint, check-test] - if: github.ref == 'refs/heads/staging' + strategy: + fail-fast: false + matrix: ${{fromJson(needs.check-matrix.outputs.matrix)}} + needs: check-matrix steps: - uses: actions/checkout@v4 - - run: | - nix develop .#ci --command bash -c $' - npm run build --ignore-scripts --verbose - ' + - name: Set artifact name + run: echo "SLUG=$(echo ${{ matrix.shard }} | sed 's/[/.]/-/g')" >> $GITHUB_ENV + - name: Run tests + run: | + npm install + npm run test -- \ + --coverageReporters json \ + --coverage \ + "${{ matrix.shard }}" + mv tmp/coverage/coverage-final.json "tmp/coverage/${{ env.SLUG }}.json" - uses: actions/upload-artifact@v4 with: - name: dist - path: ./dist + name: coverage-artifacts-${{ env.SLUG }} + path: tmp/coverage/ + + check-coverage: + name: "Check / Coverage" + runs-on: ubuntu-latest + needs: check-test + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + pattern: coverage-artifacts-* + path: tmp/coverage/ + merge-multiple: true + - run: rm .npmrc + - name: Merge coverage results + run: npx nyc merge tmp/coverage/ tmp/coverage/cobertura-coverage.json + - uses: actions/upload-artifact@v4 + with: + name: cobertura-coverage + path: tmp/coverage/cobertura-coverage.json build-platforms: name: "Build / Platforms" runs-on: ${{ matrix.os }} - container: - image: ${{ matrix.platform == 'linux' && 'ghcr.io/matrixai/github-runner' || null }} - needs: build-dist - if: github.ref == 'refs/heads/staging' + needs: check-build strategy: fail-fast: false matrix: @@ -96,10 +104,9 @@ jobs: env: npm_config_arch: "x64" script: | - nix develop .#ci --command bash -c $' + npm install npm run prebuild --verbose npm test -- --ci --coverage - ' - platform: windows os: windows-latest env: @@ -138,38 +145,35 @@ jobs: run: ${{ matrix.script }} - uses: actions/upload-artifact@v4 with: - name: builds-${{ matrix.platform }} - path: ./builds + name: prebuild-${{ matrix.platform }} + path: ./prebuild build-prerelease: name: "Build / Pre-release" runs-on: ubuntu-latest - container: - image: ghcr.io/matrixai/github-runner concurrency: group: build-prerelease cancel-in-progress: false - needs: [check-lint, check-test] - if: > - github.ref == 'refs/heads/staging' && - startsWith(github.ref, 'refs/tags/v') && - contains(github.ref, '-') + needs: + - check-lint + - check-build + - check-test + if: contains(github.ref, '-') steps: - uses: actions/checkout@v4 - uses: actions/download-artifact@v4 with: - pattern: builds* - path: builds + pattern: prebuild* + path: prebuild merge-multiple: true - - name: Run pre-release + - name: Run deployment env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ./.npmrc echo 'Publishing library prerelease' - nix develop .#ci --command bash -c $' + npm install npm publish --tag prerelease --access public - ' for d in prebuild/*; do tar \ --create \ @@ -178,7 +182,6 @@ jobs: --directory=prebuild \ "$(basename $d)" done - nix develop .#ci --command bash -c $' gh release \ create "$GITHUB_REF_NAME" \ prebuild/*.tar \ @@ -187,67 +190,35 @@ jobs: --prerelease \ --target staging \ --repo "$GITHUB_REPOSITORY" - ' rm -f ./.npmrc - integration-merge: - name: "Integration / Merge" - runs-on: ubuntu-latest - concurrency: - group: integration-merge - cancel-in-progress: true - needs: [build-pull, build-platforms] - if: github.ref == 'refs/heads/staging' - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - token: ${{ secrets.GH_TOKEN }} - - name: Merge into master - env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} - GIT_AUTHOR_EMAIL: ${{ secrets.GIT_AUTHOR_EMAIL }} - GIT_AUTHOR_NAME: ${{ secrets.GIT_AUTHOR_NAME }} - GIT_COMMITTER_EMAIL: ${{ secrets.GIT_COMMITTER_EMAIL }} - GIT_COMMITTER_NAME: ${{ secrets.GIT_COMMITTER_NAME }} - run: | - printf "Pipeline Succeeded on $GITHUB_RUN_ID for $GITHUB_SHA\n\n$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \ - | gh pr comment staging \ - --body-file - \ - --repo "$GITHUB_REPOSITORY" - git checkout master - git merge --ff-only "$GITHUB_SHA" - git push origin master - release-distribution: name: "Release / Distribution" runs-on: ubuntu-latest - container: - image: ghcr.io/matrixai/github-runner concurrency: group: release-distribution cancel-in-progress: false - needs: integration-merge + needs: + - check-lint + - check-build + - check-test if: > - github.ref == 'refs/heads/staging' && - startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-') steps: - uses: actions/checkout@v4 - uses: actions/download-artifact@v4 with: - pattern: builds* - path: builds + pattern: prebuild* + path: prebuild merge-multiple: true - - name: Run release + - name: Publish release env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ./.npmrc echo 'Publishing library' - nix develop .#ci --command bash -c $' + npm install npm publish --access public - ' for d in prebuild/*; do tar \ --create \ @@ -256,7 +227,6 @@ jobs: --directory=prebuild \ "$(basename $d)" done - nix develop .#ci --command bash -c $' gh release \ create "$GITHUB_REF_NAME" \ prebuild/*.tar \ @@ -264,5 +234,5 @@ jobs: --notes "" \ --target master \ --repo "$GITHUB_REPOSITORY" - ' rm -f ./.npmrc + diff --git a/README.md b/README.md index 084c151..f9ec143 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # js-mdns +Multicast DNS Stack for TypeScript/JavaScript Applications. + ## Installation ```sh @@ -35,26 +37,6 @@ See the docs at: https://matrixai.github.io/js-mdns/ ### Publishing -Publishing is handled automatically by the staging pipeline. - -Prerelease: - -```sh -# npm login -npm version prepatch --preid alpha # premajor/preminor/prepatch -git push --follow-tags -``` - -Release: - -```sh -# npm login -npm version patch # major/minor/patch -git push --follow-tags -``` - -Manually: - ```sh # npm login npm version patch # major/minor/patch @@ -63,3 +45,7 @@ npm publish --access public git push git push --tags ``` + +## License + +js-mdns is licensed under Apache-2.0, you may read the terms of the license [here](LICENSE). diff --git a/package-lock.json b/package-lock.json index d03269a..b5aa6bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1297,6 +1297,18 @@ "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-3.1.0.tgz", "integrity": "sha512-C4JWpgbNik3V99bfGfDell5cH3JULD67eEq9CeXl4rYgsvanF8hhuY84ZYvndPhimt9qjA9/Z8uExKGoiv1zVw==" }, + "node_modules/@matrixai/mdns-linux-x64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@matrixai/mdns-linux-x64/-/mdns-linux-x64-1.3.0.tgz", + "integrity": "sha512-irwfDOmzhGOteeyRztS8mc42SXpQ1sYTNhxR++HRcgN6E70GTNoipUHJikBr1i9KkRm8dDs2q+rMHoq91GgKdw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@matrixai/resources": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-1.1.5.tgz", @@ -8134,6 +8146,12 @@ "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-3.1.0.tgz", "integrity": "sha512-C4JWpgbNik3V99bfGfDell5cH3JULD67eEq9CeXl4rYgsvanF8hhuY84ZYvndPhimt9qjA9/Z8uExKGoiv1zVw==" }, + "@matrixai/mdns-linux-x64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@matrixai/mdns-linux-x64/-/mdns-linux-x64-1.3.0.tgz", + "integrity": "sha512-irwfDOmzhGOteeyRztS8mc42SXpQ1sYTNhxR++HRcgN6E70GTNoipUHJikBr1i9KkRm8dDs2q+rMHoq91GgKdw==", + "optional": true + }, "@matrixai/resources": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-1.1.5.tgz", From 9cd402beb72df7eb88c24cc362430b0439d17f64 Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:20:16 +1000 Subject: [PATCH 04/16] 1.3.1 --- package-lock.json | 24 +++--------------------- package.json | 4 ++-- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index b5aa6bd..bfccb25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@matrixai/mdns", - "version": "1.3.0", + "version": "1.3.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@matrixai/mdns", - "version": "1.3.0", + "version": "1.3.1", "license": "Apache-2.0", "dependencies": { "@matrixai/async-cancellable": "^1.1.1", @@ -51,7 +51,7 @@ "node": "^20.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.0" + "@matrixai/mdns-linux-x64": "1.3.1" } }, "node_modules/@ampproject/remapping": { @@ -1297,18 +1297,6 @@ "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-3.1.0.tgz", "integrity": "sha512-C4JWpgbNik3V99bfGfDell5cH3JULD67eEq9CeXl4rYgsvanF8hhuY84ZYvndPhimt9qjA9/Z8uExKGoiv1zVw==" }, - "node_modules/@matrixai/mdns-linux-x64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@matrixai/mdns-linux-x64/-/mdns-linux-x64-1.3.0.tgz", - "integrity": "sha512-irwfDOmzhGOteeyRztS8mc42SXpQ1sYTNhxR++HRcgN6E70GTNoipUHJikBr1i9KkRm8dDs2q+rMHoq91GgKdw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, "node_modules/@matrixai/resources": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-1.1.5.tgz", @@ -8146,12 +8134,6 @@ "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-3.1.0.tgz", "integrity": "sha512-C4JWpgbNik3V99bfGfDell5cH3JULD67eEq9CeXl4rYgsvanF8hhuY84ZYvndPhimt9qjA9/Z8uExKGoiv1zVw==" }, - "@matrixai/mdns-linux-x64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@matrixai/mdns-linux-x64/-/mdns-linux-x64-1.3.0.tgz", - "integrity": "sha512-irwfDOmzhGOteeyRztS8mc42SXpQ1sYTNhxR++HRcgN6E70GTNoipUHJikBr1i9KkRm8dDs2q+rMHoq91GgKdw==", - "optional": true - }, "@matrixai/resources": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-1.1.5.tgz", diff --git a/package.json b/package.json index 5382b42..84fa218 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@matrixai/mdns", - "version": "1.3.0", + "version": "1.3.1", "author": "Matrix AI", "contributors": [ { @@ -48,7 +48,7 @@ "ip-num": "^1.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.0" + "@matrixai/mdns-linux-x64": "1.3.1" }, "devDependencies": { "@fast-check/jest": "^1.6.2", From d9d04d01df60a4869afe5d1953a9a4abe00d515f Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:25:23 +1000 Subject: [PATCH 05/16] ci: fix fail --- .github/workflows/merge.yml | 5 ++++- .github/workflows/release.yml | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index 72e7943..b322e34 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -48,6 +48,8 @@ jobs: check-test: name: "Check / Test" runs-on: ubuntu-latest + container: + image: ghcr.io/matrixai/github-runner strategy: fail-fast: false matrix: ${{fromJson(needs.check-matrix.outputs.matrix)}} @@ -58,11 +60,12 @@ jobs: run: echo "SLUG=$(echo ${{ matrix.shard }} | sed 's/[/.]/-/g')" >> $GITHUB_ENV - name: Run tests run: | - npm install + nix develop .#ci --command bash -c $' npm run test -- \ --coverageReporters json \ --coverage \ "${{ matrix.shard }}" + ' mv tmp/coverage/coverage-final.json "tmp/coverage/${{ env.SLUG }}.json" - uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8f73b6a..d34a7c7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,6 +51,8 @@ jobs: check-test: name: "Check / Test" runs-on: ubuntu-latest + container: + image: ghcr.io/matrixai/github-runner strategy: fail-fast: false matrix: ${{fromJson(needs.check-matrix.outputs.matrix)}} @@ -61,11 +63,12 @@ jobs: run: echo "SLUG=$(echo ${{ matrix.shard }} | sed 's/[/.]/-/g')" >> $GITHUB_ENV - name: Run tests run: | - npm install + nix develop .#ci --command bash -c $' npm run test -- \ --coverageReporters json \ --coverage \ "${{ matrix.shard }}" + ' mv tmp/coverage/coverage-final.json "tmp/coverage/${{ env.SLUG }}.json" - uses: actions/upload-artifact@v4 with: @@ -94,6 +97,8 @@ jobs: build-platforms: name: "Build / Platforms" runs-on: ${{ matrix.os }} + container: + image: ${{ matrix.platform == 'linux' && 'ghcr.io/matrixai/github-runner' || null }} needs: check-build strategy: fail-fast: false @@ -104,9 +109,10 @@ jobs: env: npm_config_arch: "x64" script: | - npm install + nix develop .#ci --command bash -c $' npm run prebuild --verbose npm test -- --ci --coverage + ' - platform: windows os: windows-latest env: From 625fb4721691802e41e32bec17c49fb086d2e34d Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:25:52 +1000 Subject: [PATCH 06/16] 1.3.2-alpha.0 --- package-lock.json | 6 +++--- package.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index bfccb25..08cd837 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@matrixai/mdns", - "version": "1.3.1", + "version": "1.3.2-alpha.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@matrixai/mdns", - "version": "1.3.1", + "version": "1.3.2-alpha.0", "license": "Apache-2.0", "dependencies": { "@matrixai/async-cancellable": "^1.1.1", @@ -51,7 +51,7 @@ "node": "^20.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.1" + "@matrixai/mdns-linux-x64": "1.3.2-alpha.0" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index 84fa218..09420e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@matrixai/mdns", - "version": "1.3.1", + "version": "1.3.2-alpha.0", "author": "Matrix AI", "contributors": [ { @@ -48,7 +48,7 @@ "ip-num": "^1.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.1" + "@matrixai/mdns-linux-x64": "1.3.2-alpha.0" }, "devDependencies": { "@fast-check/jest": "^1.6.2", From 030d60ef3edfa943e7d8cb70e242b77701cc6eb6 Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:43:16 +1000 Subject: [PATCH 07/16] ci: fix chocolatey --- scripts/choco-install.ps1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/choco-install.ps1 b/scripts/choco-install.ps1 index 7f1c22b..81035ea 100755 --- a/scripts/choco-install.ps1 +++ b/scripts/choco-install.ps1 @@ -8,7 +8,7 @@ function Save-ChocoPackage { Remove-Item "$env:ChocolateyInstall\lib\$PackageName\package" -Recurse Remove-Item "$env:ChocolateyInstall\lib\$PackageName\[Content_Types].xml" New-Item -Path "${PSScriptRoot}\..\tmp\chocolatey\$PackageName" -ItemType "directory" -ErrorAction:SilentlyContinue - choco pack "$env:ChocolateyInstall\lib\$PackageName\$PackageName.nuspec" --outdir "${PSScriptRoot}\..\tmp\chocolatey\$PackageName" + choco pack "$env:ChocolateyInstall\lib\$PackageName\$PackageName.nuspec" --outdir "${PSScriptRoot}\..\tmp\chocolatey\$PackageName" --no-progress } # Check for existence of required environment variables @@ -19,19 +19,19 @@ if ( $null -eq $env:ChocolateyInstall ) { # Add the cached packages with source priority 1 (Chocolatey community is 0) New-Item -Path "${PSScriptRoot}\..\tmp\chocolatey" -ItemType "directory" -ErrorAction:SilentlyContinue -choco source add --name="cache" --source="${PSScriptRoot}\..\tmp\chocolatey" --priority=1 +choco source add --name="cache" --source="${PSScriptRoot}\..\tmp\chocolatey" --priority=1 --no-progress # Install nodejs v20.5.1 (will use cache if exists) $nodejs = "nodejs" -choco install "$nodejs" --version="20.5.1" --require-checksums -y +choco install '$nodejs' --version='20.5.1' --require-checksums -y --no-progress # Internalise nodejs to cache if doesn't exist if ( -not (Test-Path -Path "${PSScriptRoot}\..\tmp\chocolatey\$nodejs\$nodejs.20.5.1.nupkg" -PathType Leaf) ) { Save-ChocoPackage -PackageName $nodejs } # Install python v3.9.12 (will use cache if exists) -$python = "python3" -choco install $python --version="3.9.12" --require-checksums -y +$python = "python" +choco install "$python" --version='3.9.12' --require-checksums -y --no-progress # Internalise python to cache if doesn't exist if ( -not (Test-Path -Path "${PSScriptRoot}\..\tmp\chocolatey\$python\$python.3.9.12.nupkg" -PathType Leaf) ) { Save-ChocoPackage -PackageName $python From 705de2f7dab1fc46ca274d35c62ad75d88657fcb Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:43:28 +1000 Subject: [PATCH 08/16] 1.3.2-alpha.1 --- package-lock.json | 6 +++--- package.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 08cd837..8350eab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.0", + "version": "1.3.2-alpha.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.0", + "version": "1.3.2-alpha.1", "license": "Apache-2.0", "dependencies": { "@matrixai/async-cancellable": "^1.1.1", @@ -51,7 +51,7 @@ "node": "^20.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2-alpha.0" + "@matrixai/mdns-linux-x64": "1.3.2-alpha.1" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index 09420e8..de10dbd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.0", + "version": "1.3.2-alpha.1", "author": "Matrix AI", "contributors": [ { @@ -48,7 +48,7 @@ "ip-num": "^1.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2-alpha.0" + "@matrixai/mdns-linux-x64": "1.3.2-alpha.1" }, "devDependencies": { "@fast-check/jest": "^1.6.2", From 29cb6083111c1bc266f3c7f3f1b5744f95f9cbb4 Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:48:44 +1000 Subject: [PATCH 09/16] ci: fix build failure --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d34a7c7..1c212d7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -64,6 +64,7 @@ jobs: - name: Run tests run: | nix develop .#ci --command bash -c $' + npm run prebuild --verbose npm run test -- \ --coverageReporters json \ --coverage \ From e010f38afb376477994947610fac1fb978f88f2a Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:48:58 +1000 Subject: [PATCH 10/16] 1.3.2-alpha.2 --- package-lock.json | 6 +++--- package.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8350eab..3b8a42d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.1", + "version": "1.3.2-alpha.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.1", + "version": "1.3.2-alpha.2", "license": "Apache-2.0", "dependencies": { "@matrixai/async-cancellable": "^1.1.1", @@ -51,7 +51,7 @@ "node": "^20.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2-alpha.1" + "@matrixai/mdns-linux-x64": "1.3.2-alpha.2" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index de10dbd..552f102 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.1", + "version": "1.3.2-alpha.2", "author": "Matrix AI", "contributors": [ { @@ -48,7 +48,7 @@ "ip-num": "^1.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2-alpha.1" + "@matrixai/mdns-linux-x64": "1.3.2-alpha.2" }, "devDependencies": { "@fast-check/jest": "^1.6.2", From be1067402a42ce35ab1cefe75a2eb0b94088b73e Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:51:52 +1000 Subject: [PATCH 11/16] ci: fix dependency graph --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1c212d7..cadcc8a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -163,8 +163,8 @@ jobs: cancel-in-progress: false needs: - check-lint - - check-build - check-test + - build-platforms if: contains(github.ref, '-') steps: - uses: actions/checkout@v4 @@ -207,8 +207,8 @@ jobs: cancel-in-progress: false needs: - check-lint - - check-build - check-test + - build-platforms if: > !contains(github.ref, '-') steps: From e9951a9ebac66799f34433198dc410420f371822 Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:51:58 +1000 Subject: [PATCH 12/16] 1.3.2-alpha.3 --- package-lock.json | 6 +++--- package.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3b8a42d..10c7c35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.2", + "version": "1.3.2-alpha.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.2", + "version": "1.3.2-alpha.3", "license": "Apache-2.0", "dependencies": { "@matrixai/async-cancellable": "^1.1.1", @@ -51,7 +51,7 @@ "node": "^20.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2-alpha.2" + "@matrixai/mdns-linux-x64": "1.3.2-alpha.3" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index 552f102..5c9d2cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.2", + "version": "1.3.2-alpha.3", "author": "Matrix AI", "contributors": [ { @@ -48,7 +48,7 @@ "ip-num": "^1.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2-alpha.2" + "@matrixai/mdns-linux-x64": "1.3.2-alpha.3" }, "devDependencies": { "@fast-check/jest": "^1.6.2", From 094b72d6e60e3e667f398a4510b6bfc577c02a79 Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:58:42 +1000 Subject: [PATCH 13/16] ci: add `GH_TOKEN` secret --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cadcc8a..da70b42 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -176,6 +176,7 @@ jobs: - name: Run deployment env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ./.npmrc echo 'Publishing library prerelease' @@ -221,6 +222,7 @@ jobs: - name: Publish release env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ./.npmrc echo 'Publishing library' From 67ae02f38b8486ca960917381f5ad8f08c85a70d Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 15:58:50 +1000 Subject: [PATCH 14/16] 1.3.2 --- package-lock.json | 6 +++--- package.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 10c7c35..9153e7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.3", + "version": "1.3.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.3", + "version": "1.3.2", "license": "Apache-2.0", "dependencies": { "@matrixai/async-cancellable": "^1.1.1", @@ -51,7 +51,7 @@ "node": "^20.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2-alpha.3" + "@matrixai/mdns-linux-x64": "1.3.2" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index 5c9d2cf..b49c1d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@matrixai/mdns", - "version": "1.3.2-alpha.3", + "version": "1.3.2", "author": "Matrix AI", "contributors": [ { @@ -48,7 +48,7 @@ "ip-num": "^1.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2-alpha.3" + "@matrixai/mdns-linux-x64": "1.3.2" }, "devDependencies": { "@fast-check/jest": "^1.6.2", From 065b2fe7b4a5623f1891d1b781bce798731eff9c Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 16:02:01 +1000 Subject: [PATCH 15/16] ci: fix error --- .github/workflows/merge.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index b322e34..b799221 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -61,6 +61,7 @@ jobs: - name: Run tests run: | nix develop .#ci --command bash -c $' + npm run prebuild --verbose npm run test -- \ --coverageReporters json \ --coverage \ From 8ef9c60ef8b5c61390547182adb534899697f906 Mon Sep 17 00:00:00 2001 From: Brynley Llewellyn-Roux Date: Wed, 10 Jul 2024 16:02:07 +1000 Subject: [PATCH 16/16] 1.3.3 --- package-lock.json | 6 +++--- package.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9153e7d..1786ff0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@matrixai/mdns", - "version": "1.3.2", + "version": "1.3.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@matrixai/mdns", - "version": "1.3.2", + "version": "1.3.3", "license": "Apache-2.0", "dependencies": { "@matrixai/async-cancellable": "^1.1.1", @@ -51,7 +51,7 @@ "node": "^20.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2" + "@matrixai/mdns-linux-x64": "1.3.3" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index b49c1d9..c368fc7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@matrixai/mdns", - "version": "1.3.2", + "version": "1.3.3", "author": "Matrix AI", "contributors": [ { @@ -48,7 +48,7 @@ "ip-num": "^1.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.3.2" + "@matrixai/mdns-linux-x64": "1.3.3" }, "devDependencies": { "@fast-check/jest": "^1.6.2",