Commit Graph

281 Commits

Author SHA1 Message Date
Jiahao XU e79bb2ab10
Include `cargo-timings` report in release build (#1110)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-06-01 03:58:11 +00:00
Jiahao XU 256fb36e74
Require job `release-builds` to pass for merging (#1088)
Fixed #1072

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-05-25 12:49:06 +00:00
Félix Saparelli 9a26c18763
Enable merge queue (#1047) 2023-05-12 03:52:34 +00:00
Jiahao XU 6516805f10
Speedup `release-build.yml`: Do not run `unit-tests` (#1015)
`cargo-test` cannot share its artifacts with `cargo-build` and vice
versa, plus running `e2e-tests` in release build is enough to find out
potential miscompilation.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-04-26 19:57:48 +10:00
Jiahao XU 5683ca2476
Add new crate `leon-macros` that provide `template!` with identical syntax as runtime parsing (#946)
`leon_macros::template!` can parse template at compile-time.
It accepts a utf-8 string literal and uses `leon` internally to parse it, then generate code that evaluates to `Template<'static>`.

 - Exclude fuzz from crate leon when publishing
 - Impl fn-like proc-macro `leon_macros::template!`
 - Add dep `leon-macros` to binstalk
 - Use `leon_macros::template!` in `binstalk::fetchers::gh_crate_meta::hosting`
 - Add doc for `leon-macros` in `leon`
 - Improve `std::fmt::Display` impl for `leon::ParseError`
 - Fixed broken infra link in leon

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-04-17 14:50:58 +10:00
Jiahao XU 35b32c43e0
Run `release-build.yml` unconditionally for consistency & inc cache hits (#982)
Since it is run on PR anyway, we should also run it on main just in case
it fails, i.e. merging of PRs without rebasing against main to test out
latest changes.

It will now also be run on draft PR so that they can test out the
changes and find out bugs before making it ready to review.

This change will also increase cache hits on PR, thus speeding up the CI.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-04-06 18:08:14 +10:00
Jiahao XU f134df548d
Optimize `release-build.yml`: Avoid building benchmark dependencies (#981)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-04-06 16:19:15 +10:00
Jiahao XU f384088fd1
Avoid checking dev-deps for jobs `*-check` and `lint` in workflow `ci.yml` (#978)
Avoid checking dev-deps for jobs `*-check` and lint in workflow `ci.yml`

We just want to make sure cargo-binstall can compile for the target, we
don't want to pull in the extra dependencies.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-04-04 01:51:13 +10:00
Jiahao XU 8dd7aa5688
Speedup `ci.yml`: Do not run tests on x86_64-unknown-linux-musl (#976)
Speedup ci.yml: Do not run tests on x86_64-unknown-linux-musl

Since we already run test on x86_64-unknown-linux-musl in
release-build.yml and x86_64-unknown-linux-musl is almost identical to
x86_64-unknown-linux-gnu except for the libc, there's no need to run the
tests in ci.yml

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-04-04 01:40:26 +10:00
Jiahao XU 24634b2de1
Speedup workflow lipo in `release-build.yml` (#975)
Speedup workflow lipo in release-build

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-04-04 01:40:13 +10:00
Jiahao XU 6a224da9ee
Run unit tests in `release-build.yml` (#977)
Since release build enables a lot of optimization, disable debug assert
and possibly change the code to be run, it's better to run the tests
again.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-04-04 01:40:01 +10:00
Jiahao XU a403c99d3f
Upgrade CI to use sccache v0.4.0 for caching (#934)
Remove `mozilla-actions/sccache-action@v0.0.2` and instead use `taiki-ie/install-action` to install `sccache`, since we already use `taiki-e/install-action` for installing crates.

This PR also refactor just-setup.yml and use pass `GITHUB_TOKEN` to `taiki-e/install-action` which uses `cargo-binstall` for installing `cargo-auditable` and `sccache`.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-03-26 17:28:35 +11:00
Jiahao XU 47d4aeaa96
Run cache-cleanup at 3am & 4:30am AEST instead of after every PR (#944)
since cache-cleanup will issue a lot of gh api requests, running the
workflow right after the PRs would cause the GH API to rate limit all
workflows (including our CI for testing and release) that they can no
longer upload artifacts and `cargo-binstall` would have to fallback to
sending GET requests instead of using GH API, which makes it a lot
slower and more likely to fail.

This PR changes it to be run at 3am and 4:30am AEST which nobody would submit
any PR at that time and then remove all caches of the top 20 closed prs.

The workflow can also now be triggered manually.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-03-23 18:10:30 +11:00
Jiahao XU 9a59119163
Fully remove all caches for PR in `cache-cleanup.yml` (#942)
Previously it only removes 30 caches for the PR because gh actions-cache list defaults to only listing 30 cache entries.

In this PR, I changed the limit to the maximum allowed 100 cache entries and I also added a loop to keep getting the next 100 cache entries until there is none.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-03-23 02:50:13 +13:00
Félix Saparelli 2227d363f7
Leon template library (#766)
* leon: first implementation

* Update crates/leon/src/values.rs

Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>

* Workaround orphan rules to make API more intuitive

* Fmt

* Clippy

* Use CoW

* Use cow for items too

* Test that const construction works

* leon: Initial attempt at O(n) parser

* leon: finish parser (except escapes)

* leon: Improve ergonomics of compile-time templates

* Document helpers

* leon: Docs tweaks

* leon: Use macro to minimise parser tests

* leon: add escapes to parser

* leon: test escapes preceding keys

* leon: add multibyte tests

* leon: test escapes following keys

* Format

* Debug

* leon: Don't actually need to keep track of the key

* leon: Parse to vec first

* leon: there's actually no need for string cows

* leon: reorganise and redo macro now that there's no coww

* Well that was silly

* leon: Adjust text end when pushing

* leon: catch unbalanced keys

* Add error tests

* leon: Catch unfinished escape

* Comment out debugging

* leon: fuzz

* Clippy

* leon: Box parse error

* leon: &dyn instead of impl

* Can't impl FromStr, so rename to parse

* Add Vec<> to values

* leon: Add benches for ways to supply values

* leon: Add bench comparing to std and tt

* Fix fuzz

* Fmt

* Split ParseError and RenderError

* Make miette optional

* Remove RenderError lifetime

* Simplify ParseError type schema

* Write concrete Values types instead of generics

* Add license files

* Reduce criterion deps

* Make default a cow

* Add a CLI leon tool

* Fix tests

* Clippy

* Disable cli by default

* Avoid failing the build when cli is off

* Add to ci

* Update crates/leon/src/main.rs

Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>

* Update crates/leon/Cargo.toml

Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>

* Bump version

* Error not transparent

* Diagnostic can do forwarding

* Simplify error type

* Expand doc examples

* Generic Values for Hash and BTree maps

* One more borrowed

* Forward implementations

* More generics

* Add has_keys

* Lock stdout in leon tool

* No more debug comments in parser

* Even more generics

* Macros to reduce bench duplication

* Further simplify error

* Fix leon main

* Stable support

* Clippy

---------

Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-03-21 01:36:02 +00:00
Félix Saparelli 48b85cc38f
Cleanup caches for closed PRs (#915)
As suggested here: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#managing-caches
2023-03-15 15:44:06 +11:00
Jiahao XU 235d324d3d
Add job windows-aarch64-check to workflow ci (#882)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-03-11 23:46:26 +11:00
Jiahao XU 18bc81f46f
Use `cargo-auditable` for release build (#878)
to make the pre-built artifacts auditable by `cargo-audit` and other
tools.

* Add new env `JUST_USE_AUDITABLE` to enable use of `cargo-auditable`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-03-11 15:57:14 +13:00
Félix Saparelli ac414df5be
Use stable sparse registry option (#879) 2023-03-11 01:58:58 +00:00
Jiahao XU 44eaff97dc
Fix use of `hashFiles` in `key` of bulid-cache (#845)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-03-02 15:40:39 +11:00
Jiahao XU c8b92b1985
Speedup CI (#842)
- Remove `tools: cross` input to `actions/just-setup`
    since we use `cargo-zigbuild` for cross compiling instead of `cross-rs`
    now.
 - Only install `cargo-zigbuild` in `just ci-install-deps` if `JUST_USE_CARGO_ZIGBUILD` is enabled
 - Include hash of `rustc -vV` in `build-cache`
    Switching between different versions of `rustc` will cause all crates to be
    rebuilt using new `rustc`.
 - Replace input `cache` with `index-cache` and `build-cache` in `actions/just-setup`
    for better control of caching behavior
 -  Reuse workflow `test`'s `build-cache` in workflow `lint`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-03-02 13:09:25 +11:00
Jiahao XU 599bcaf333
Impl `GhApiClient` and use it in `cargo-binstall` to speedup resolution process (#832)
Fixed #776

 - Add new feature gh-api-client to binstalk-downloader
 - Impl new type `binstalk_downloader::remote::{RequestBuilder, Response}`
 - Impl `binstalk_downloader::gh_api_client::GhApiClient`, exposed if `cfg(feature = "gh-api-client")` and add e2e and unit tests for it
 - Use `binstalk_downloader::gh_api_client::GhApiClient` to speedup `cargo-binstall`
 - Add new option `--github-token` to supply the token for GitHub restful API, or read from env variable `GITHUB_TOKEN` if not present.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-03-02 12:04:22 +11:00
Jiahao XU 2bf70b6a01
Run e2e test for release build and fix it by switching back to stable (#818)
* Run e2e-tests for release build
* Print `RUSTFLAGS` for justfile target build & check
* Fix CI: Disable miropt level 4
* Fix CI: Disable -Zbuild-std
* Disable `-Zgcc-ld=lld` and `-Zshare-generics` so that we can switch back to stable

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-02-28 11:53:57 +00:00
Jiahao XU e76a4dff62
Improve CI: All in cargo-zigbuild for linux targets (#816) 2023-02-18 13:41:17 +11:00
Jiahao XU 9923788f07
Fix CI: Only turn on feature pkg-config on linux and fix cross compilation (#815)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-02-18 00:07:24 +13:00
Jiahao XU 61c992612c
Switch to `cargo-zigbuild` for `aarch64-unknown-linux-gnu` and `x86_64-unknown-linux-musl` (#814)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-02-17 09:36:45 +13:00
Jiahao XU 93f15ea1c4
Ignore README.md and SUPPORT.md in workflow "ci" (#812)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-02-16 11:58:16 +13:00
Jiahao XU 647f02bb59
Use `cargo-zigbuild` for cross compilation (#767)
* Disable link arg `-lgcc` for musl builds when `cargo-zigbuild` is used

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-02-15 11:19:59 +13:00
Jiahao XU 87686cb2f7
Feature: Better retry policy in `binstalk-downloader` (#794)
Fixed #779 #791 

 - Retry request on timeout
 - Retry for `StatusCode::{REQUEST_TIMEOUT, GATEWAY_TIMEOUT}`
 - Add `DEFAULT_RETRY_DURATION_FOR_RATE_LIMIT` for 503/429
   if 503/429 does not give us a header or give us an invalid header on
   when to retry, we would default to
   `DEFAULT_RETRY_DURATION_FOR_RATE_LIMIT`.
 - Fix `Client::get_redirected_final_url`: Retry using `GET` on status code 400..405 + 410
 - Rename remote_exists => remote_gettable & support fallback to GET
   if HEAD fails due to status code 400..405 + 410.
 - Improve `Client::get_stream`: Include url & method in the err of the stream returned

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-02-13 13:43:48 +11:00
Jiahao XU f46de3714a
Add step to relase-build to make sure it's runnable (#792)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2023-02-12 14:48:28 +11:00
Félix Saparelli 939f17dcd0
Fix "Tests pass" step (#726) 2023-01-18 03:13:49 +13:00
Félix Saparelli ba91777faf
Fix name of release (#723) 2023-01-18 00:22:49 +13:00
Félix Saparelli aed3d9d71c
Use release action with explicit support for being called multiple times (#693) 2023-01-12 00:48:03 +00:00
Félix Saparelli 64c359a86f
Run CI on auto-merge enable (#692) 2023-01-12 02:45:04 +13:00
Félix Saparelli ede976d650
Fix typo (#691) 2023-01-11 01:21:16 +00:00
Félix Saparelli 9821caa6d0
Use release-meta action instead of parsing commits (#675) 2023-01-11 09:22:53 +11:00
Félix Saparelli 4b2deb19b9
Try build-std with arm64 gnu (#667) 2023-01-09 12:35:00 +13:00
Félix Saparelli aea9df602c
Migrate CI and builds to Just, add "full" builds (#660) 2023-01-08 16:27:36 +11:00
dependabot[bot] 611485de52
Bump taiki-e/install-action from 1 to 2 (#630) 2022-12-27 11:43:56 +00:00
Noa 597e092774
CI: Build -gnu targets on ubuntu-20.04 (#607)
This commit pins it to 20.04, so the glibc version required by the release binaries can be run on docker image `rust:1.65` which uses glibc 2.31.
2022-12-14 11:14:20 +11:00
dependabot[bot] f45c18ff81
Bump softprops/action-gh-release from 0.1.14 to 0.1.15 (#583) 2022-12-02 14:46:59 +13:00
Jiahao XU 44316e1f02
Fix workflow release-pr: Install nightly toolchain (#560)
Default rust/cargo in ubuntu-latest is too old.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-11-22 09:59:24 +00:00
Jiahao XU 707b173de1
Create universal binary for MacOS in workflow release (#551)
* Create universal binary for MacOS in workflow build
* Update README

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-11-22 16:52:36 +11:00
Jiahao XU d9cc3ce219
Refactor: Extract new crate binstalk-types plus other misc refactor and optimization (#535)
* Refactor: Extract new crate binstalk-types
* Optimize: Rm field `CrateInfo::other`
   which also removes dep serde-tuple-vec-map and serde-json from
   binstalk-types.
   
   This also makes `CrateInfo` easier to use, more generic and can be used
   over any `Serializer`, not just `serde_json::Value`.
* Mark all errors in `binstalk-manifests` as non_exhaustive
* Reduce size of `CvsParseError` by using `Box<str>`
   instead of `String` for variant `UnknownSourceType`.
* Reduce size of `CratesTomlParseError` to 16 bytes on 64bit platform
   by boxing variants `TomlWrite` and `CvsParse` as these two fields are
   significantly larger than other variants.
* Unify import style in mod `binstall_crates_v1`
* Replace dep binstalk-manifests with binstalk-types in binstalk-downloader
   to reduce its transitive dependencies and enables binstalk-downloader to
   be built in parallel to binstak-manifests.
* Replace dep binstalk-manifests with binstalk-types in binstalk
   to reduce transitive dependencies and enables binstalk to be built in
   parallel to binstalk-manifests.
   
   This is benefitial because binstalk-manifests pulls in toml_edit, which
   could takes up to 15s to be built on M1 (7-9s for codegen).
* Add dep binstalk-manifests to crates/bin
* Update dependabot and GHA release-pr

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-11-17 13:46:27 +13:00
dependabot[bot] 4ee0c9160f
Bump cargo-bins/release-pr from 1 to 2 (#531)
Bumps [cargo-bins/release-pr](https://github.com/cargo-bins/release-pr) from 1 to 2.
- [Release notes](https://github.com/cargo-bins/release-pr/releases)
- [Commits](https://github.com/cargo-bins/release-pr/compare/v1...v2)

---
updated-dependencies:
- dependency-name: cargo-bins/release-pr
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-15 12:45:31 +11:00
Jiahao XU 89fa5b1769
Refactor: Extract new crate binstalk-{signal, downloader} (#518)
* Refactor: Extract new crate binstalk-downloader
* Re-export `PkgFmt` from `binstalk_manifests`
* Update release-pr.yml
* Update dependabot

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-11-11 04:02:54 +00:00
Jiahao XU fc6d9ab956
Refactor: Extract new crate binstalk-manifests (#511)
* Refactor: Extract new crate binstalk-manifests
* Fix clippy warning in mod `binstall_crates_v1`
* Rm unused deps in binstalk
* Update release-pr

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-11-08 00:50:02 +00:00
dependabot[bot] 25a4ceb050
Bump mathieudutour/github-tag-action from 6.0 to 6.1 (#502)
Bumps [mathieudutour/github-tag-action](https://github.com/mathieudutour/github-tag-action) from 6.0 to 6.1.
- [Release notes](https://github.com/mathieudutour/github-tag-action/releases)
- [Commits](https://github.com/mathieudutour/github-tag-action/compare/v6.0...v6.1)

---
updated-dependencies:
- dependency-name: mathieudutour/github-tag-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 02:30:40 +00:00
Jiahao XU 0ac27bbb1d
Re enable `CARGO_UNSTABLE_SPARSE_REGISTRY` (#504)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-10-28 01:02:28 +00:00
dependabot[bot] 24aa099320
Bump cargo_toml from 0.12.4 to 0.13.0 (#486)
Bumps [cargo_toml](https://gitlab.com/crates.rs/cargo_toml) from 0.12.4 to 0.13.0.
- [Release notes](https://gitlab.com/crates.rs/cargo_toml/tags)
- [Commits](https://gitlab.com/crates.rs/cargo_toml/commits/master)

---
updated-dependencies:
- dependency-name: cargo_toml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-18 02:55:54 +00:00
Jiahao XU 98b62251ad
Fix unit test & integration CI and the release CI (#469)
* Fix integration test: Make sure `cargo build cargo-binstall` would not fail due to binary already present
* Disable feature `zlib-ng` for release build
* Disable build-std for release build on aarch64-unknown-linux-gnu
* Fix clippy warning in unit test CI
* Fix compile-settings.jq
* Fix caching: Rm `restores-keys`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-10-08 20:26:46 +13:00
Jiahao XU ec2bdb551e
Use `CARGO` env variable if present (#453)
* Run `$CARGO -vV` in `detect-targets` if env `CARGO` present
* Improve crate doc for `detect-targets`
* Use env var `CARGO` in `install_from_source` if present
* Test use of `CARGO` env in `tests.sh`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-10-02 04:52:25 +13:00
Félix Saparelli be8e83b8bd
Update release-pr config (#364) 2022-09-10 06:56:33 +00:00
Félix Saparelli bcec382a64
Improve release-pr usage (#350) 2022-09-07 17:40:46 +10:00
Félix Saparelli a628cbf876
Rename flock to fs-lock (#338) 2022-09-04 15:28:22 +00:00
Félix Saparelli 3387a63895
Fix release PR template (#336) 2022-09-04 15:19:17 +00:00
Félix Saparelli e21617cc9e
Adapt release workflow for workspace (#331)
Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-09-04 11:12:10 +00:00
Félix Saparelli 280bc974eb
Use release PR action (#330) 2022-09-04 09:38:08 +00:00
Jiahao XU 4def4d08fd
Add new feature `trust-dns` to lib & bin (#318)
* Add new feature `trust-dns` to lib & bin
* Enable `trust-dns` feature by default
   Because the `getaddrinfo` is a poorly designed API.
* USe default feature set on windows CI
   because wintls on the CI does not support TLS 1.3 and trust-dns only
   support dns over https if rustls is used.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-25 12:01:22 +12:00
Jiahao XU 1102284684
Fix `clippy` warnings and add new workflow clippy (#306)
* Derive `Eq` for `PkgFmt`, `PkgFmtDecomposed` & `TarBasedFmt`
* Derive `Eq` for `PkgMeta`, `PkgOverride` & `BinMeta`
* Rm unnecessary reborrow in `install_from_source`
* Rm unnecessary `into()` in `args::parse`
* Fix `clippy` warning in `CratesToml::append_to_path`
* Fix clippy warning in `cratesio_url`
* Fix clippy warning in `detect_targets_linux`
* Add `clippy` and `rustfmt` to workflow `unit-test`

Because `clippy` would not check inactive code disabled by `cfg`, so we
have to also run `clippy` on multiple targets.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-21 02:40:50 +12:00
dependabot[bot] 88ddcf3599
Bump softprops/action-gh-release (#302)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-20 11:56:29 +00:00
dependabot[bot] df3a8e21c7
Bump actions/checkout from 2 to 3 (#303)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-20 11:44:52 +00:00
Félix Saparelli 4b00f5f143
Split crates and clean up structure of codebase (#294)
Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-20 11:24:12 +00:00
Félix Saparelli 68d3ab56f7
Enable sparse registry in CI (#285) 2022-08-06 22:07:24 +12:00
Jiahao XU 140d3df8bd
Fix integration test: Set `CARGO_HOME` instead of `rm -rf $HOME/.cargo`
The later would also delete the cmd `cargo`.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-04 17:40:58 +10:00
Jiahao XU cc92c2c4b6
Rm `$HOME/.cargo` to test `cargo-binstall`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-04 17:29:19 +10:00
Jiahao XU 9e5ff25be8
Fix release build: Set `RUSTFLAGS` to link with libgcc statically
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-31 13:40:17 +10:00
Jiahao XU af3b87df7a
Fix releasae build: Install rust-src for release
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-30 16:20:18 +10:00
Jiahao XU 7a7220b1a2
Fix build: Rm unnecessary `env.TOOLCHAIN`
Since we build it using +nightly anyway.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-30 16:20:18 +10:00
Jiahao XU 98d8a96a02
Use `build-std` feature for release build to reduce binary size
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-30 16:20:17 +10:00
Félix Saparelli ac995798ef
Split features and build args handling in build (#257) 2022-07-30 17:27:49 +12:00
Jiahao XU 77396d45bd
Fix release build for win: Enable fancy-no-backtrace
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-25 17:46:59 +10:00
Félix Saparelli 51b300d29e
Fixes for the CI (#242) 2022-07-24 20:33:56 +12:00
Félix Saparelli 310c07d9c8
Reconfigure CI cache with fallbacks (#240) 2022-07-24 16:10:43 +12:00
Félix Saparelli ef2752cd42
Stop using actions-rs (#239) 2022-07-24 15:37:41 +12:00
Félix Saparelli 88b9aceb01
Fix the instructions for publish on the release PR (#237) 2022-07-24 14:32:37 +12:00
Jiahao XU e857a88426
Add back target `aarch64-unknown-linux-gnu`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:51:46 +10:00
Jiahao XU e3a5ca2991
Add back target `armv7-unknown-linux-gnueabihf`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:50:57 +10:00
Jiahao XU 18e0730afb
Disable static and zlib-ng on cross compilation
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:42:06 +10:00
Jiahao XU b33a606109
Use native-tls for x86_64-pc-windows-msvc on release
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:41 +10:00
Jiahao XU 23139e9db5
Use rustls on debug for aarch64-apple-darwin
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:41 +10:00
Jiahao XU 82aa893306
Disable feature static & zlib-ng on x86_64-apple-darwin
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:41 +10:00
Jiahao XU 291269f50f
Fix "Build debug": Add back `use-cross`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:40 +10:00
Jiahao XU 026aefb5a7
Enable rustls for x86_64-unknown-linux-gnu
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:40 +10:00
Jiahao XU 018196de45
Disable default features only when debug_build_args is overriden
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:40 +10:00
Jiahao XU 6e1f930c8e
Disable native-tls for x86_64 linux-gnu and apple-darwin
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:40 +10:00
Jiahao XU 450facd260
Install deps only on x86_64 linux gnu
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:40 +10:00
Jiahao XU 1df00e5ba8
Enable native-tls on non-cross build & pkg-config on x86_64 linux gnu
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:40 +10:00
Jiahao XU 272d049cf6
Fix cond in integration test CI
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:40 +10:00
Jiahao XU bdef2169a3
Fix typo in integration test CI
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:40 +10:00
Jiahao XU 00f60c18b4
Enable feature pkg-config in debug build of integration CI
when not doing cross compilation.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:39 +10:00
Jiahao XU 8e10c0d356
Enable feature `native-tls` in debug build in integration CI
when not doing cross compilation

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:39 +10:00
Jiahao XU f7caeea0e6
Enable feature native-tls in unit-tests
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:39 +10:00
Jiahao XU f2d5d0291b
Always disable feature pkg-config in integration test CI
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU adbc2d4a11
Disable feature `pkg-config` for cross compilation.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU 8a32ab5dd3
Refactor: Extract `ci-scripts/install-deps.sh`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU 74dd3b6c70
Build debug with feature pkg-config in integration test CI
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU c2349a15cb
Install lzma, bzip & zstd only on debug build in integration test CI
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU 3dbec7718d
Fix dep installation in workflow "unit-tests"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU 1499f5c201
Install lzma, bzip & zstd in integration test CI
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU b22a55f08f
Install lzma, bzip and zstd lib in workflow unit-tests
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU 997d4e4e9d
Run workflow unit-tests with feature pkg-config
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:37 +10:00
Félix Saparelli 3889d122a7
Releng improvements (#224) 2022-07-24 00:39:54 +12:00
Jiahao XU 9f914a3c84
Fix integration test: Copy from `debug` for PR
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-14 21:41:32 +10:00
Jiahao XU 2936f2c3f1
Build cargo-binstall in debug mode for PR
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-14 21:32:59 +10:00
Félix Saparelli 6a127bab86
Don’t double up unit tests on PRs 2022-07-05 22:18:50 +12:00
Félix Saparelli 38ce26d0c4
Remame workflows for clarity 2022-07-05 22:17:10 +12:00
Jiahao XU 5302240829
Refactor workflow rust: Extract test into script
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-11 18:21:57 +10:00
Jiahao XU 9bf1ce3000
Fix typo in step "Test (Unix)"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-11 17:11:52 +10:00
Jiahao XU dd24661091
Test installed bin in step "Test (Windows)"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-11 17:02:53 +10:00
Jiahao XU 19656b6f45
Fix typo in step "Test"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-11 17:02:31 +10:00
Jiahao XU 4b78d4eb4d
Fix step Test: Run `cargo binstall --help` instead
of `cargo binstall --version` since `--version` does not print the
version of `cargo-binstall`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-11 16:52:51 +10:00
Jiahao XU 58f0d5f12d
Run bins after installation in step "Test"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-11 16:43:11 +10:00
Jiahao XU ac22db5e79
Set log level to debug in step "Test"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-11 14:37:14 +10:00
Jiahao XU 4297b13ed9
Fix testing on Windows
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 18:20:59 +10:00
Jiahao XU fbcfe369da
Rm cbindgen from `bins` in step "Test"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 18:16:28 +10:00
Jiahao XU cfa6090e6e
Rm non-existent crate in step "Test"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 17:32:38 +10:00
Jiahao XU ea71cede42
Fix `if` cond for step "Test"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 17:28:23 +10:00
Jiahao XU e312a22ba2
`set -euxo pipefail` in step "Test"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 17:19:21 +10:00
Jiahao XU dc5978e737
Fix step "Test": Fix invoking `cargo-binstall` directly
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 17:13:01 +10:00
Jiahao XU 68942f56e4
Merge two testing step into one in workflow `rust`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 17:08:54 +10:00
Jiahao XU 57d2b4c3b4
Run job "Test binstall" only natively
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 17:08:26 +10:00
Jiahao XU d038e77978
Fix typo in step "Test installing bins"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 17:02:18 +10:00
Jiahao XU 53c9d667ce
Enable caching on macos as issue has been fixed
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 16:55:21 +10:00
Jiahao XU 665564420a
Add more bins to test in job "Test installing bins"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 16:54:55 +10:00
Jiahao XU 4ff64dee34
Fix caching: Only cache `.cargo/{git, registry}`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 16:53:34 +10:00
Jiahao XU d4495cc3bb
Merge job test into job build to speedup workflow
so that testing does not have to wait for all build jobs with different
configurations to finish before starting.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 16:52:24 +10:00
Jiahao XU 3e5c7ec43f
Add back testing of `--manifest-path` in workflow `rust`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 16:49:09 +10:00
Jiahao XU b0598a1fad
Update workflow rust: Test `find_crate_cratesio`
by removing `--manifest-path`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 16:38:45 +10:00
Jiahao XU 951dacd03d
Fix cache key used in workflow "ci"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 02:00:38 +10:00
Jiahao XU c9bd741c9b
Add new workflow ci
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:53:10 +10:00
Jiahao XU 5d62f7f615
Rm target aarch64-unknown-linux-gnu & armv7-unknown-linux-gnueabihf
Since they are the only two targets that crate `zstd-sys` failed to
build.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 20:41:32 +10:00
Félix Saparelli 151998a1eb
Cleanup yaml 2022-05-31 17:25:34 +12:00
Félix Saparelli 832c51f025
Add apple m1 builds 2022-05-31 17:17:04 +12:00
Jiahao XU 9ed7dc6970
Rm step for installing `musl-tool` in job `test`
The job `test` for target `x86_64-unknown-linux-musl` requires
`musl-tool` since there is no pre-built binary present for that target
and thus `cargo-binstall` automatically fall back to `cargo-build`.

Currently, the test for it also failed because `libssl-1.1` is not
present.

However, since this will be fixed once a new release of `cargo-binstall`
is published, this step should not be present.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 14:40:45 +10:00
Jiahao XU aabf5c75a2
Add target `aarch64` to job `build`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 14:24:08 +10:00
Jiahao XU 9c9b8e55b3
Use `cross` to for target `armv7-unknown-linux-gnueabihf`
in job `build`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 14:08:51 +10:00
Jiahao XU 187ac2d20e
Refactor: Avoid duplicate job for building release
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 13:53:03 +10:00
Jiahao XU 6172bcb126
Fix step "Configure toolchain" in job test
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 13:08:13 +10:00
Jiahao XU feb03e37d2
Fix job `test` for `x86_64-unknown-linux-musl`
Install corresponding rustup target and musl-tools

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 12:58:35 +10:00
Jiahao XU d1c6a07a48
Fix typo in path of step "Configure caching"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 12:47:02 +10:00
Jiahao XU ec5ab955b3
Fix use of `||` in `if` in steps
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 12:44:18 +10:00
Jiahao XU 7796f8760a
Enable `use-cross` for job "Build release for arm musl target"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 12:40:48 +10:00
Jiahao XU 37ddf3c435
Merge duplicate steps with different `if` using `||`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 12:37:49 +10:00
Jiahao XU 38849734b2
Remove steps to install libssl in job `build`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 12:36:40 +10:00
Jiahao XU 7455037190
Add `x86_64-unknown-linux-musl` as target to job `test`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 00:36:36 +10:00
Jiahao XU bcc8057705
Add back `{x86_64, armv7}unknown-linux-gnu{eabihf}` targets
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-31 00:35:03 +10:00
Jiahao XU cba8a05c82
Fix job "Install cross toolchain (armv7)"
Install "gcc-arm-linux-gnueabihf" as "gcc-arm-linux-musleabihf" does not
exist.

Also use `apt-get` instead of `apt`.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-30 17:19:10 +10:00
Jiahao XU 4e1cb0fdcf
Compile prebuilt binaries using musl target
So that it is statically linked and does not depend on any dynamic
library and can be run anywhere.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-05-30 17:13:57 +10:00
ryan kurte 87449e29e7 Swap macos to zip, update binary lookup for binstall 2021-10-08 11:38:38 +13:00