diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 5bf5c84..10fe87f 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -12,6 +12,7 @@ on: types: [opened, synchronize, reopened, ready_for_review] push: branches: [main] + workflow_dispatch: permissions: contents: read @@ -28,6 +29,6 @@ jobs: contents: read packages: read with: - targets: ${{ github.event_name == 'push' && 'linux-x64 linux-arm64 windows-x64 windows-arm64 macos-x64 macos-arm64' || 'linux-x64 windows-x64 macos-arm64' }} + targets: ${{ github.event_name != 'pull_request' && 'linux-x64 linux-arm64 windows-x64 windows-arm64 macos-x64 macos-arm64' || 'linux-x64 windows-x64 macos-arm64' }} publishes: true timeout-minutes: 20 diff --git a/README.md b/README.md index a62a777..3657a7c 100644 --- a/README.md +++ b/README.md @@ -197,7 +197,7 @@ Every pull request into `main` must pass "Check / Linked issue" and "Build and t - `.github/workflows/build-and-test.yml` calls the organization's shared `build-and-test.yml`, v2.30.0, with `publishes: true`, on GitHub-hosted runners, as the `.github` repository's README describes it. Each target's job builds, checks the toolchain, Node.js 24.21.0 with npm 11.19.0, and the line endings, `* text=auto eol=lf` in `.gitattributes` and LF only with exactly one final newline in every tracked text file, then runs `npm run test -- --skip-test-details --skip-coverage-details` and checks that the build and the tests changed no tracked file. On Linux x64 it also builds a second time and checks that the archives are the same, byte for byte, and on every target it checks the archives as the release does, with `pipelines archive`: each archive's name, version, `gitHead`, scope and licence, and a byte-for-byte copy of every file `--list-copies` lists. -- Every pull request, draft or ready, runs Linux and Windows x64 and macOS arm64, and every push to `main` every target: Linux, Windows and macOS, each on x64 and ARM64. +- Every pull request, draft or ready, runs Linux and Windows x64 and macOS arm64, and every push to `main` and every run started by hand every target: Linux, Windows and macOS, each on x64 and ARM64. On each, a test runs the installed Git build's `git --version` and expects the version `builds.json` pins for that system. A release downloads and checks every target's pinned build. - `.github/workflows/module-range.yml` calls Noldova Desktop's "Module range" workflow, pinned to Noldova Desktop 0.0.1's commit, with `src/noldova.checkpoints`, on every pull request, every night and by hand.