.gitbay/ci.yml
27 lines · 1117 bytes
1# gitbay CI. Each job becomes one build per push; the runner clones this
2# repository at the pushed commit and runs every step with `sh -c`, stopping at
3# the first failure. Repository secrets arrive as environment variables.
4#
5# The runner is Linux, and `runner next` claims the oldest pending build with no
6# platform targeting, so a second runner could not be aimed at macOS jobs. The
7# darwin tarballs are therefore built on a Mac by .githooks/pre-push at tag time
8# and uploaded to the same release; see RELEASING.org.
9jobs:
10 test:
11 steps:
12 - cargo test --locked
13 - cargo clippy --all-targets --locked -- -D warnings
14 - cargo run --locked -- build docs -o "/tmp/orgo-docs-$GITBAY_SHA" --strict
15 - rm -rf "/tmp/orgo-docs-$GITBAY_SHA"
16
17 # Publishes the documentation site by force-pushing the built output to the
18 # `pages` branch, which gitbay serves at https://orgo.krz.sh. A no-op off main.
19 pages:
20 steps:
21 - sh .gitbay/pages.sh
22
23 # The tag push is the release: binaries, the gitbay release, and crates.io.
24 release:
25 tags: "v*"
26 steps:
27 - sh .gitbay/release.sh