This automatically triggers and grabs the build artifacts for systems that are only supported on Cirrus CI (as of now, FreeBSD and M1 macOS).
* ci: add cirrus build trigger script
* ci: modify build scripts to include cirrus build
* fix some stuff
* update docs
* more fixes
* ci: update rust-cache to 2.0.1
* ci: update dtolnay/rust-toolchain to ba37adf
* ci: update skip-duplicate-actions to v5.2.0
* ci: update ClementTsang/cargo-action to v0.0.3
* ci: update to macos-12
* ci: update ghaction-chocolatey to 2.1.0
* ci: update upload-artifact to v3.1.0
* ci: change from actions-rs to rustsec for audit-check
* ci: stop using actions-rs for builds
* ci: update cirrus to use tlsv1.2 when curling
* ci: disable macOS ARM workflows on GHA since its built on Cirrus
* ci: spring cleaning of completions autogen
This commit changes a few things/cleans up stuff:
- Completion and manpage generation now drops the files off in
`./target/tmp/bottom` rather than arbitrarily in the build directory.
This was originally done because I was lazy and just needed it to work
in CI, but it's kinda gross if you want to build the manpages in your
own directory.
- CI was updated to handle this.
- Only run if the `BTM_GENERATE` env var is actually non-empty.
* docs: update for manpage/completion gen
* ci: auto delete autogen comp/manpage dir
* ci: fix incorrect mv for autogen
The mv was too late, should be earlier in the workflow.
* ci: specify shell in autogen delete
* docs: more updates to manpage/comp docs
* ci: unify env vars
* ci: skip autogen on build-msi
action-rs' action seems to not be really maintained anymore and
throws some redundant warnings that kinda clog up outputs. As
such, I feel like moving to a more active action is probably worth it.
Make a note of release sizes in the nightly/deploy scripts. This is mostly just in case I need to refer to it in the future (mainly for nightly, as the actual generated files are overwritten daily).
Disables incremental compilation and debug symbols in CI and other related workflows, since they're not used there at all. Also forces --locked as needed.
This changes various as_ref() calls as needed in order for bottom to successfully build in Rust beta 1.61, as they were causing type inference issues. These calls were either removed or changed to an alternative that does build (e.g. as_slice()).
Functionally, there should be no change.
For context, see:
- https://github.com/ClementTsang/bottom/issues/708
- https://github.com/rust-lang/rust/issues/96074
Adds the asset for the manpage to cargo deb config. Also moves the generated manpage file to a .1.gz file. Also, moves back to a build script since that was causing some issues for the automatic Cargo.toml fields detection for manpage and completion generation.
To prevent compilation from happening every time, and only in CI, we use an env var to avoid generation steps.
Adds manpage generation to the build process, as well as following the xtask concept of adding additional build scripts that only need to run on deploy/nightly as opposed to `build.rs`. Note this doesn't follow the recommended method of using workplaces because I don't really want to shift the entire repo structure just for this.
More on xtask: https://github.com/matklad/cargo-xtask
Adds an indicator in the form of `$version (stable)` to make it easier to see which is the most recent stable version.
This is done via CI and mike:
1. Set the previous title to just `$version`. We can get this value by `mike list stable` and grepping for valid version tags (otherwise this might have issues with `$version (stable)`).
2. Deploy `$new_version` and alias to stable.
3. Update the `$new_version` to have a new title of `$new_version (stable)`.
This was causing issues with the choco workflow in another repo since
the name was incorrect; I've decided to also rename the template for
consistency.
Due to how matrices work with if/skipping, it seems like this ugly hack is the only way to skip CI based on the files updated without clogging the PR pipeline.
In a similar vein to #590, we only create a release after the entire pipeline is completed and succeeds. Also fixes some incorrect job names and adds some "/'s" after directory names in the nightly pipeline.
Changes the nightly build workflow to delete/create a new release *only* if the entire build process passes. This avoids a potential case of a nightly build failing but having overwritten the old one, which has happened before.
After this change lands, similar changes will probably be made to the deployment script for releases.
Adds a `ProductCode`, `Scope`, and `Commands` field to the template, as well as additional changes to the deploy process to determine + fill in the `ProductCode` automatically.
Seems like we have a few too many tests that aren't really needed for just asserting CI is passing.
The goal for CI (IMO) is just to ensure things still build on the various supported platforms after changes are made. However, there were a few tested scenarios like Windows GNU or musl which I feel weren't really too important in this regard, and added extra time to an already long CI process.
Commented out the following tests since there aren't any architecture-specific features that require running these in addition to other already-existing tests:
- Windows GNU
- Linux musl (both x86 and x86_64)
Of course, should we add changes that directly affect these architectures, then we should add the tests back.