mirror of
https://github.com/vatesfr/xen-orchestra.git
synced 2026-11-09 17:06:13 -06:00
The binary in git is now the build of its sources. build.sh keeps the paths of the machine out of the binary and refuses another zig or cargo-zigbuild version, and the Vectura workflow fails when its build differs from the committed binary. The binary is rebuilt with this build.sh: only its paths change, the version stays 0.1.2. vectura is no longer released on its own. release.sh runs once at the end of the pull request which changes vectura and no longer commits. bump-pkg, gen-deps-list.js and check-changed-pkgs.js drop the vectura pseudo-package: a change under vectura/ requires a release of @xen-orchestra/vmware-explorer, which ships the committed binary as is. release.sh puts Cargo.toml and Cargo.lock back when the build or the check of the binary fails.
74 lines
2.4 KiB
YAML
74 lines
2.4 KiB
YAML
name: Vectura
|
|
|
|
# only when vectura changes: the rest of the repository does not build it
|
|
#
|
|
# pull requests rather than every push: GitHub filters a push on the diff with
|
|
# the previous push, which after a rebase on `master` (or a merge of it)
|
|
# contains the vectura changes of `master`, whereas it filters a pull request
|
|
# on the diff with the merge base, i.e. the changes of the branch only
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- '@xen-orchestra/vmware-explorer/vectura/**'
|
|
- .github/workflows/vectura.yml
|
|
push:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- '@xen-orchestra/vmware-explorer/vectura/**'
|
|
- .github/workflows/vectura.yml
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: '@xen-orchestra/vmware-explorer/vectura'
|
|
|
|
jobs:
|
|
checks:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# https://github.com/actions/checkout
|
|
- uses: actions/checkout@v4
|
|
|
|
# rustup, on the runner image, installs the toolchain rust-toolchain.toml
|
|
# names on the first cargo command
|
|
- run: cargo fmt --all --check
|
|
- run: cargo clippy --all-targets --locked -- -D warnings
|
|
- run: cargo test --locked
|
|
|
|
# https://github.com/taiki-e/install-action
|
|
- uses: taiki-e/install-action@v2
|
|
with:
|
|
tool: cargo-deny@0.20.2,cargo-llvm-cov@0.8.5
|
|
|
|
- run: cargo deny --locked check
|
|
- run: cargo llvm-cov --locked --json --summary-only --output-path target/coverage.json
|
|
- name: Hold the coverage floor
|
|
run: cargo test --locked --test coverage -- --ignored
|
|
|
|
# builds the binary as release.sh does, checks it, then checks the one in git,
|
|
# which xo-server runs, is that build
|
|
binary:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# https://github.com/actions/checkout
|
|
- uses: actions/checkout@v4
|
|
|
|
# https://github.com/mlugg/setup-zig
|
|
- uses: mlugg/setup-zig@v2
|
|
with:
|
|
version: 0.16.0
|
|
|
|
# https://github.com/taiki-e/install-action
|
|
- uses: taiki-e/install-action@v2
|
|
with:
|
|
tool: cargo-zigbuild@0.23.4
|
|
|
|
- run: scripts/build.sh "$RUNNER_TEMP/build"
|
|
- run: scripts/check-binary.sh "$RUNNER_TEMP/build/vectura"
|
|
- name: The binary in git is the build of these sources
|
|
run: |
|
|
cmp "$RUNNER_TEMP/build/vectura" vectura || {
|
|
echo '::error::vectura is not the build of these sources: run scripts/build.sh . in vectura/ and commit the binary'
|
|
exit 1
|
|
}
|