Commit Graph

118 Commits (9c7ca33929864b7042665095cf6eb2be02cac6d0)

Author SHA1 Message Date
David Peter 02a9d191ed Bump MSRV to 1.58 2 years ago
Martin Nordholts ab8f97b0bb Bump MSRV to 1.56.1
This is what `hashbrown` did recently: https://github.com/rust-lang/hashbrown/pull/298

And it causes CI failures for us. Examples:
* https://github.com/sharkdp/bat/pull/2266
* https://github.com/sharkdp/bat/pull/2265

The path of least resistance for us is to also bump MSRV, so let's do
that. 1.56.1 was released [9 months
ago](https://blog.rust-lang.org/2021/11/01/Rust-1.56.1.html).
2 years ago
David Peter 6db64cf050 Use cross to build x86_64-unknown-linux-gnu executables
We do this in order to link against older versions of glibc.

closes #2106
2 years ago
Martin Nordholts 719248f1c1
Simplify release-checklist.md by printing `-h`, `--help` and `man` in CI (#2183)
* Simplify release-checklist.md by printing `-h`, `--help` and `man` in CI

Note that we run `find . -name bat.1` before we run anything with
`--all-features`, because `--all-features` is considered a separate
target, and so we will get a different (but identical) `bat.1`. For
example, we might have these:

    ./target/debug/build/bat-218e9538b4996215/out/assets/manual/bat.1
    ./target/debug/build/bat-89d6f56802af023f/out/assets/manual/bat.1

By showing the man page earlier, there is only one `bat.1` to pick from.

* Use plain `man $(find . -name bat.1)`
2 years ago
Mahdi Dibaiee 6dc621ec18 Set minimum supported rust version to 1.51 3 years ago
Martin Nordholts ce89fb2751 CICD: Add check for accidental inclusion of GPL:ed code 3 years ago
Martin Nordholts 043f3381b0
CICD: Make the 'cargo fmt' check a toplevel job (#1883)
Mainly to make it easier to see what went wrong when it fails.

If this ever gets of out sync with a particular Rust version, we can most likely
save the situation by introducing a `rustfmt.toml` file.
3 years ago
Martin Nordholts 418fce5683 Bump MSRV to 1.46
See #1874 and #1872.
3 years ago
Kuan-Yi Li 47283f226a Add bash completion to deb package
From the discussion in #1734, instead of using `env.PROJECT_NAME`,
`steps.strip.outputs.BIN_NAME` could potentially be a better choice as
the filename needs to match the called executable for bash-completion's
on demand loading to work. This `BIN_NAME` needs to stay in sync with
`env.PROJECT_EXECUTABLE` which is replaced in the template, but not
available for the deb build at this stage.

Follow the same route as for the fish/zsh completions for now for the
sake of consistency.

Closes #1733
3 years ago
Martin Nordholts d935ea1cda
Add regression testing for the custom assets functionality (#1829)
The test is following the same steps regular users are instructed to follow:
https://github.com/sharkdp/bat/blob/master/README.md#adding-new-syntaxes--language-definitions
3 years ago
Martin Nordholts 8ca852c728
CICD: Put documentation testing in its own job (#1831)
For increased parallelization and thus a faster CICD pipeline.
3 years ago
Martin Nordholts 355a82db54 CICD: Sort build matrix by target 3 years ago
Martin Nordholts b3e17bde82 CICD: Remove disabled windows-2019 i686-pc-windows-gnu from build matrix
It just messes up alignment. Nothing gets better by keeing it around.
3 years ago
Martin Nordholts 4b38e7b1d7 CICD: Swap target and os in matrix job name
The full name can frequently not be shown, and target is more relevant than os,
so show target first.
3 years ago
Rashil Gandhi 43afae34be
Add PowerShell completion file (#1826) 3 years ago
Martin Nordholts 19c3e82abf
Replace deprecated 'error-chain' with 'thiserror' (#1820)
We can't use #[from] on Error::Msg(String) because String does not implement Error.
(Which it shouldn't; see e.g. https://internals.rust-lang.org/t/impl-error-for-string/8881.)
So we implement From manually for Error::Msg, since our current code was written
in that way for error-chain.
3 years ago
David Peter ff70a80741 Add statically linked binaries for ARM 3 years ago
David Peter ecdb17148d Use Ubuntu 20.04 instead of 18.04 3 years ago
Martin Nordholts cbd96237fd CICD: Add 'cargo fmt' check 3 years ago
Martin Nordholts 25fa577cd0 Make 'build-assets' an optional capability for application
Also structure features a bit more clever to avoid duplication of
feature dependency declarations.
3 years ago
Martin Nordholts cb4973987b Cargo.toml: Introduce 'quick-build-application' feature
Use it like this:

  cargo build --no-default-features --features quick-build-application

It reduces dependencies to build from 154 to 125, allowing quicker iteration
when developing the app.
3 years ago
Martin Nordholts 697d106bd4 CICD: Pass --locked to all cargo commands
To avoid that earlier cargo commands "fixes" Cargo.lock before cargo commands
with --locked has a chance to check if it is up to date.
3 years ago
David Peter fddd11a205 CICD: sync with pastel, minor changes 3 years ago
Ville Skyttä e05f5010da Add bash completion
Closes https://github.com/sharkdp/bat/issues/1010
3 years ago
Marco Ieni 8321cc661c
CI: check docs (#1612) 3 years ago
Martin Nordholts 8f93844427 CICD: Remove explicit allow of clippy::match_bool since MSRV 1.45 bump
Now that we are on MSRV 1.45, there is no need to "backport" the change
that reclassified clippy::match_bool as "pedantic".
4 years ago
David Peter 52f84b063c Update dependencies, MSRV: 1.45 4 years ago
Martin Nordholts 9db9a38565 CICD: Add workflow_dispatch to enable manual builds
Which is useful when you want to test a fix without creating a PR for
it.
4 years ago
Martin Nordholts 0371f55541 CICD: Don't run jobs twice in PRs
Without this change, creating a PR triggers all jobs to run twice. Once
due to a push event and once due to a pull_request event.

Change to only trigger jobs due to push when pushing a tag or to the
master branch, to avoid duplicate jobs for each PR.
4 years ago
David Peter bc35592fd9 CICD: Build step naming 4 years ago
David Peter f5d834407e CICD: Improved job names 4 years ago
David Peter 557a748ac7 CICD: Remove code coverage computation 4 years ago
Martin Nordholts 3f10f71ad2 CICD: Build: Rename 'Check is release' step to 'Check for release'
To get a name that sounds like proper English.
4 years ago
Martin Nordholts 7b6388b19f CICD: Build: Add separate 'Calculate test options' step
And move it down to right before it is needed, to reduce its scope.

For #1474
4 years ago
Martin Nordholts b98ec4bbc5 CICD: Build: Check IS_RELEASE in separate step
And move it closer to where it is actually needed, to reduce its scope.

For #1474
4 years ago
Martin Nordholts 94fd481f36 CICD: Build: Remove unused ${{ matrix.job.cargo-options }} expansions 4 years ago
Martin Nordholts 0e5ea9c354 CICD: Build: Use package-specific staging dir
A common staging dir confuses more than it helps, so let each package
step take care of its own staging dir.

For #1474
4 years ago
Martin Nordholts eac36dd3b5 CICD: Build: Introduce and use new 'Strip release bin' step
So that we don't have to duplicate that logic in both 'Debian package'
and 'Package' steps.

For #1474
4 years ago
Martin Nordholts d36b091fd7 CICD: Build: Move PKG_* vars to 'Package' step
For improved modularization of CICD script.

For #1474
4 years ago
Martin Nordholts 3dcf02549e CICD: Build: Move DPKG_* vars to 'Debian package' step
For cleaner CICD script. Note that we can't use outputs defined in our
own step, so also change to shell vars intead.

For #1474
4 years ago
Martin Nordholts e402011a73 CICD: Build: Split out dir creation into the individual package steps
It's cleaner because we can reuse helper vars and create the dirs closer
in time to when they are needed.

For #1474
4 years ago
Martin Nordholts 221c9815a5 CICD: Build: Split up into separate 'Debian package' step
Make sure to ignore whitespace changes when diffing.

For #1474
4 years ago
Martin Nordholts c5c683f67c Explicitly allow clippy::match_bool until we bump MSRV
Since we run clippy on Rust 1.42.0 we still get warnings about the
presence of clippy::match_bool lints. That lint has been moved from
'Style' to 'Pedantic' in Rust 1.45.0 and onwards however, so let's
silent it in our clippy runs too.
4 years ago
sharkdp faa27ed6e3 CICD: simply use 'sed' to extract crate information 4 years ago
sharkdp f3227c259e Use cache for faster install 4 years ago
sharkdp 2cfeebab90 CICD: Use 'cargo get' to extract crate metadata 4 years ago
Martin Nordholts e3b1142364 CICD: Build: DEPLOY -> IS_RELEASE and inline it
This simplifies and clarifies the script.

For #1474
4 years ago
Martin Nordholts 8832ff3c6a CICD: Build: Adapt release version regex to bat
All bat tags begin with a small 'v', so no need for a generic pattern in
the CI script. This will also help us ensure we keep the same format on
future tags.
4 years ago
Martin Nordholts 505ff10dc6 CICD: Build: Always build and upload Debian packages
Not only when a release tag is pushed. Also publish these Debian
packages as artifacts. This makes PR workflows more similar to release
work flows, and reduces risk of build system regressions that we don't
detect until we make a new release.

For #1474
4 years ago
Martin Nordholts 9a3a5545e7 CICD: Build: Use Cargo.toml version instead of tag
This enables us to later always build Debian packages. If you try to use
a git sha as Debian package version you will get an error:

    dpkg-deb: error: parsing file '_staging/dpkg/DEBIAN/control' near line 2 package 'bat':
     error in 'Version' field string 'd2963ce4': version number does not start with digit

so we need to use a version that is always available.

We duplicate the bat version in another place here which is a bit bad,
but it is already duplicated a lot, so we don't make things
significantly worse. It is still kind of nice to not have to figure out
a good and robust way to parse out the version from Cargo.toml in the CI
script.

For #1474
4 years ago