Commit Graph

212 Commits

Author SHA1 Message Date
Clement Tsang d56b551e39
ci: try only having cancel-in-progress for non-main branch (#864) 2022-11-02 01:29:41 -04:00
Clement Tsang 3296feae50
ci: unify CI workflow with one ending step (#860)
* ci: unify CI workflow with one ending step

* update PR template
2022-10-30 19:20:41 -04:00
Clement Tsang e3ced72c2f
ci: add skip based on file changes for Cirrus tests (#859)
* ci: add skip based on file changes for Cirrus tests
2022-10-29 05:37:45 -04:00
Clement Tsang 568c48eb5f
ci: update workflows with setup-python to v4.3.0 (#858)
Updates any workflows with setup-python to use v4.3 due to node deprecation warnings.
2022-10-29 05:03:19 -04:00
Clement Tsang 8985e6ab67
ci: update comment on what build_release does 2022-10-28 00:37:24 -04:00
Clement Tsang fec56372bb
ci: use one skip check for CI workflow (#855)
Use one single skip check job for CI like other workflows.
2022-10-27 22:00:37 -04:00
Clement Tsang 51498e1238
ci: automatically create and get build artifacts from Cirrus CI (#854)
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
2022-10-27 06:27:04 -04:00
Clement Tsang 4240a38ced
ci: test cancelling stale actions (#851)
Use Github Action's concurrency settings to cancel old actions in favour of newer ones.
2022-10-25 01:24:08 -04:00
Clement Tsang 97ba34e3f4
ci: add token secret to make codecov action more stable (#850)
The codecov action can sometimes fail; this change adds the repo codecov token to use by default to help alleviate this.
2022-10-25 00:03:39 -04:00
Clement Tsang 59c214b733
ci: update codecov upload action to 3.1.1 (#848)
Deals with the node12 deprecation warning.
2022-10-21 22:41:05 -04:00
Clement Tsang fc90c549ef
ci: update GitHub CI to remove deprecated/unmaintained actions and commands (#846)
* 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
2022-10-20 06:24:04 -04:00
Clement Tsang 530f6bf3b3
ci: add basic Cirrus CI testing for FreeBSD + M1 (#827)
* ci: add basic Cirrus CI testing for FreeBSD + M1

* add env vars

* remove curl installation from macos script

* add caching
2022-10-20 01:27:14 -04:00
ClementTsang df13d12551 Revert "ci: add basic Cirrus CI testing for FreeBSD + M1 (#826)"
This reverts commit 577165292c.
2022-10-12 17:54:02 -04:00
Clement Tsang 577165292c
ci: add basic Cirrus CI testing for FreeBSD + M1 (#826) 2022-10-12 17:45:45 -04:00
Clement Tsang 14808b3a2e
ci: completion/manpage generation script spring cleaning (#795)
* 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
2022-08-30 18:25:16 -04:00
Clement Tsang 2e0771d483
ci: update release build OS to ubuntu 20.04 (#780)
Due to the deprecation of Ubuntu 18.04 as a runner target this PR updates the OS to 20.04 (see https://github.com/actions/runner-images/issues/6002), the next supported version of Ubuntu.
2022-08-13 12:14:51 -04:00
Clement Tsang fcb8cac0d5
ci: add ARM macOS to build workflow (#779)
Adds macOS ARM to the build workflow for nightly/release.
2022-08-13 11:53:07 -04:00
Clement Tsang 510aa5c404
ci: try simpler cross/cargo action for builds and tests (#767)
Uses a personal action for simpler invocations of cargo/cross commands.
2022-07-16 00:34:18 -04:00
Clement Tsang e33603d8ee
ci: try to update cross to 0.2.4 (#764)
Try to update to the newest cross version after 0.2.2 had some bugs causing a rollback to 0.2.1 (see #755).
2022-07-12 05:22:15 -04:00
Clement Tsang 4ca68b621d
ci: fix missing target in tests (#757)
Fix missing target parameter for primary test targets (e.g. aarch64), and adjust integration tests to work with cross.
2022-06-27 01:36:45 -04:00
Clement Tsang 6468f8af58
ci: lock cross to 0.2.1 on CI as well (#756)
Locks CI to cross 0.2.1.
2022-06-25 23:03:14 -04:00
Clement Tsang 89f7705e21
deployment: force usage of cross 0.2.1 for now (#755)
Locks cross in deployment builds to 0.2.1, as 0.2.2 seems to break some things for now.
2022-06-25 22:22:30 -04:00
Clement Tsang 2912859e52
ci: bump cargo-llvm-cov to 0.4.8 (#754) 2022-06-24 23:03:44 -04:00
Clement Tsang 0c648ed14a
ci: try moving to rust-toolchain (#745)
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.
2022-06-02 18:04:51 -04:00
Clement Tsang 7e1a0a9744
ci: bump checkout to v3 (#744)
Bumps `checkout` calls to v3.
2022-06-02 15:05:43 -04:00
Clement Tsang 6745736622
deployment: unify build release action between nightly/deploy (#743)
Unifies nightly and deployment workflows using a shared action yml file to avoid as much duplication. Also updates the download-artifact action to v3.
2022-06-02 05:10:17 -04:00
Clement Tsang dae3c07cd7
ci: update cargo_llvm_cov to 0.4.4 (#741) 2022-05-31 10:06:31 -04:00
Clement Tsang 54d042ac56
deployment: deletes the debian folder in case of unwanted leftover files (#740)
Deletes the generated debian folder in nightly/deploy workflows, as I don't want to cache it.
2022-05-28 17:40:33 -04:00
Clement Tsang 96d5b9b87d
deployment: add aarch64/armv7 gnu .deb generation (#739)
Adds .deb generation for aarch64 and armv7 gnu targets in the nightly and deploy workflows.
2022-05-28 16:14:25 -04:00
Clement Tsang 42909dba35
ci: fix missing aarch64 build (#738) 2022-05-25 17:06:38 -04:00
Clement Tsang 7fb9e00251
ci: note release sizes in nightly/deploy (#733)
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).
2022-05-18 19:09:50 -04:00
Clement Tsang 98e7fbbeab
ci: add back paths field to coverage workflow (#728) 2022-05-07 19:57:56 -04:00
Clement Tsang 460869f281
deployment: add arm musl targets (#726)
Adds musl targets to the nightly and deployment workflows.
2022-05-07 15:53:39 -04:00
Clement Tsang 9882a9bd08
ci: move cargo fmt step into supported job (#722)
Moves the rustfmt step into the supported job, to avoid having to wait too long for machine spinup time if they are separate jobs.
2022-05-01 17:53:08 -04:00
ClementTsang 715af44efc ci: create deploy feature; test in CI
This encompasses features that we want on deployment.
2022-05-01 17:30:20 -04:00
ClementTsang 6e2ea8eeda ci: remove caching step from cargo fmt check 2022-05-01 17:12:20 -04:00
ClementTsang 8cc361e443 ci: clean up ci workflow 2022-05-01 16:56:40 -04:00
ClementTsang a9da449cef ci: update rust-cache to 1.4.0 2022-05-01 15:47:30 -04:00
Clement Tsang e646a76630
ci: disable debug symbols and incremental in CI, force locked #719
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.
2022-04-29 18:15:49 -04:00
Clement Tsang b9a356f581
ci: lock cargo-llvm-cov install in script (#715)
Super small change, install cargo-llvm-cov with --locked.
2022-04-28 01:39:58 -04:00
ClementTsang 19430a1a49 ci: reduce code cov skip conditions 2022-04-28 01:18:27 -04:00
ClementTsang a6933d89b3 ci: try using llvm-cov instead of tarpaulin 2022-04-28 00:31:58 -04:00
Clement Tsang d43bd6147d
bug: change as_ref() to build in Rust beta 1.61.0 (#711)
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
2022-04-27 18:34:49 -04:00
Clement Tsang 194a769b1d
ci: use locked builds in deploy and nightly (#700)
Adds --locked to the build process for nightly and deploy workflows.
2022-04-10 01:11:10 -04:00
Clement Tsang 44e6923a5d
ci: update cargo deb to 1.37 (#699) 2022-04-08 17:45:18 -04:00
Clement Tsang f2b8b4e842
other: add manpage file to cargo deb config, move back to build script (#693)
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.
2022-03-11 06:45:05 -05:00
Clement Tsang 8087f0b636
ci: add manpage generation, migrate build script (#692)
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
2022-03-10 05:15:48 -05:00
Clement Tsang 57e1a8285e
ci: update audit workflow (#685)
Manually install the audit crate as part of the audit CI since it seems to be using too old of a version of Rust.
2022-02-27 19:52:09 -05:00
Clement Tsang c4c9130b4a
ci: enable strip on release builds with Cargo.toml (#679)
Removes the manual strip used in favour of the now native functionality in Cargo.
2022-02-25 02:18:22 -05:00
Clement Tsang 128ec81200
ci: switch to a manual cargo tarpaulin installation (#680)
Update to use a manual install of cargo tarpaulin, fixes the wrong filename being checked in the skip action.
2022-02-25 02:15:26 -05:00
Clement Tsang 5df7839d18
ci: disable 32-bit in choco generation (#671)
Seems like the 32-bit binary triggers false positives on VirusTotal.
Going to disable this for now.
2022-02-02 22:34:43 -05:00
Clement Tsang 3529e484cc
ci: remove winget step (#660)
Removes the winget step from the deployment pipeline; it seems like a bot now manages winget deployments for bottom, which is nice.
2022-01-19 23:45:20 -05:00
ClementTsang 398d52af2e ci: update CFP hook secret name 2022-01-16 16:05:20 -05:00
Clement Tsang b8429cb401
docs: indicate stable version in selector on deploy (#654)
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)`.
2022-01-01 20:45:44 -05:00
Clement Tsang 1481fe4282
ci: test installing .deb in build (#651)
Add an additional validation step to the .deb file generation in nightly and deployment workflows.
2021-12-30 20:48:56 -05:00
Clement Tsang c92cfc644d
bug/ci: fix debian file generation breaking completions (#645)
Fixes completion file generation being broken while the .deb file is made, due to using an incorrect path.
2021-12-27 16:49:15 -05:00
Clement Tsang 9a11ead991
ci: Use commit hash for some actions to pin them (#641)
Pins some actions using a specific commit hash.
2021-12-22 17:29:50 -05:00
Clement Tsang d6a112bee4
docs: disable CFP hook for now while investigating issues (#635)
Temporarily disable the Cloudflare Pages hook while investigating why mike isn't playing nicely.
2021-12-20 21:23:04 -05:00
ClementTsang feb6d9db2f ci: fix invalid secret param for CFP hook 2021-12-19 15:11:07 -05:00
Clement Tsang 81260a2c25
ci: adds cloudflare pages deploy hook (#631) 2021-12-19 15:07:37 -05:00
ClementTsang 97f013bccf ci: revert rename of chocolateyinstall template
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.
2021-12-19 13:56:57 -05:00
Clement Tsang 69dcd827b6
ci: disable codecov patch (#629)
I don't really need the patch feature right now, so let's disable it.
2021-12-19 12:56:48 -05:00
Clement Tsang 3a95a3d6d2
ci: add run type to codecov action (#618)
This seems to be needed if I add unit tests due to the repo being both a binary and a lib.
2021-11-28 04:08:54 -05:00
Clement Tsang c4caa87e0b
ci: switch action's accepted files back to "paths" 2021-11-28 04:04:23 -05:00
Clement Tsang 16f0913307
ci: deal with skipping, matrices, reliant jobs (#617)
This time, the problem is that since the matrix jobs rely on another job, they never trigger and clog up CI.
2021-11-27 06:39:22 -05:00
Clement Tsang 5c8757a1fa
ci: deal with skipping and matrix (#616)
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.
2021-11-27 06:27:51 -05:00
Clement Tsang 363138abab
ci: go back to a paths_ignore for ci workflow (#615)
Reverts to using paths_ignore for CI workflow.
2021-11-27 05:53:41 -05:00
ClementTsang b9683a65f2 ci: be more specific with paths for ci/codecov 2021-11-27 05:31:32 -05:00
ClementTsang 305ff2a672 ci: Add test for building docs 2021-11-27 05:31:32 -05:00
Clement Tsang afcf56e4ae
ci: actually skip ci if duplicate (#611)
Forgot the if line to actually skip ci if duplicate...
2021-11-27 05:07:39 -05:00
Clement Tsang 4e083d4a86
ci: skip duplicate runs (#610)
Skips duplicate runs in the CI/codecov pipelines.
2021-11-27 04:54:55 -05:00
ClementTsang bc22c5f160 ci: add codecov to PR 2021-11-27 03:42:05 -05:00
Clement Tsang ce15731b77 ci: add codecov to docs, update workflow name (#609)
Adds a codecov badge for quick reference.
2021-11-25 20:45:08 -05:00
Clement Tsang 1f6a2a8391
ci: add codecov (#608)
Adds codecov to the workflow suite.
2021-11-25 20:40:13 -05:00
ClementTsang 4b49ddabe5 ci: add some documentation in the workflow files 2021-10-17 21:54:06 -04:00
ClementTsang 6c157fe1dd
ci: allow manual triggering of audit action 2021-10-17 21:32:08 -04:00
ClementTsang 4b705572c6 ci: forgot a -r 2021-10-10 18:17:20 -04:00
Clement Tsang 65d3dd7af5
ci: simplify python dependency step for release/doc pipeline (#596)
Slightly simplifies the whole Python dependency step for pipelines generating mkdocs.
2021-10-10 18:16:21 -04:00
Clement Tsang a362b6c9dd
ci: Create release only if the entire pipeline passes (#595)
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.
2021-10-09 02:29:17 -04:00
Clement Tsang a1a33e0120
ci: parallelize ci better (#594)
Parallelizes the CI workflow better.
2021-10-03 17:49:29 -04:00
Clement Tsang 31072d1952
ci: revert previous i686 change (#593)
Reverts #592, this was done incorrectly, I changed the wrong thing and I also didn't need to change said thing.
2021-10-03 17:13:14 -04:00
Clement Tsang 3c51245d35
ci: Disable cross for i686 Windows, add multilib for i686 Linux for Nightly (#592)
Disables an unnecessary use of cross for i686 Windows, and add multilib for i686 Linux since apparently that's needed now.
2021-10-03 16:44:50 -04:00
Clement Tsang 9071e37283
ci: only create nightly release if build passes (#590)
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.
2021-10-03 02:42:37 -04:00
Clement Tsang caa4f38232
ci: add missing step for compressing completion files (#586) 2021-09-25 01:54:29 -04:00
Clement Tsang e20057b97c
ci: move winget/msi and deb gen to separate steps (#585)
Moves debian and winget/msi generation to a separate job, so it can run in parallel to the other jobs.
2021-09-23 19:13:13 -04:00
Clement Tsang b853aef752
ci: disable homebrew auto-gen (#584)
Disables homebrew CI file generation, since it's now handled by separate maintainers! See #578 for some more details.
2021-09-20 01:09:10 -04:00
Clement Tsang 7e9e18faac
ci: fix deploy script for completion directory copy (#577)
Adds an explicit mkdir to the completions directory. No idea why it was bugging out before though, it worked fine on nightly builds.
2021-09-12 16:16:05 -04:00
Clement Tsang d6c69ea319
ci: specify package version for post-release docs 2021-09-04 15:59:47 -04:00
Clement Tsang 81873688bc
ci: specify package versions in doc pipeline 2021-09-04 15:57:52 -04:00
Clement Tsang eeee395cc0
ci: make audit action weekly
It really doesn't need to run daily. It now runs every Monday.
2021-08-30 17:07:48 -04:00
Clement Tsang ed07fbe1cc
other: Make the battery dependency/features optional (#570)
Allows disabling of the battery dependency through a feature flag. This also aims to disable all related features.
2021-08-19 22:16:44 -04:00
Clement Tsang cb680dd12e
other: Add RISC-V to unofficially supported targets (#565)
Adds CI actions and documentation for RISC-V.
2021-07-31 16:24:16 -04:00
Clement Tsang d1e672f263
ci: add caching to more jobs (#563)
More usage of the caching action to CI/deploy. Seems to save ~3-4 minutes on CI, not sure about deploy.
2021-07-27 18:59:17 -04:00
Clement Tsang 8aa1303b3c
ci: update winget template + deploy for more info (#554)
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.
2021-07-21 22:02:00 -04:00
Clement Tsang 895e3cddce
ci: disable AUR packaging (#551)
Since Arch builds are now maintained by a TU in the community repo, I'll be disabling AUR packaging from this point forward. Yay!
2021-07-19 01:30:52 -04:00
Clement Tsang 7392b56364
ci: reduce the number of tests in CI (#540)
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.
2021-07-12 23:02:48 -04:00
Clement Tsang 47629326e6
ci: Add post-release action for AUR repo (#531)
Adds an additional post-release action to trigger AUR PKGBUILD actions for https://github.com/ClementTsang/aur-bottom.
2021-06-30 22:46:02 -04:00
Clement Tsang 9e81e36ed5 ci: update pkgbuilds for ARM, fix bugs (#530)
Fixes some bugs in CI and updates PKGBUILD for ARM.
2021-06-29 18:15:33 -04:00
ClementTsang c628645816 docs: Fix typo 2021-06-27 20:55:39 -04:00
ClementTsang df7d00d65b ci: remove nightly set in docs ci 2021-06-27 20:53:44 -04:00