diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 76705d96..b27fe5ac 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -18,11 +18,8 @@ jobs: name: Ensure 'cargo fmt' has been run runs-on: ubuntu-20.04 steps: - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@stable with: - toolchain: stable - default: true - profile: minimal components: rustfmt - uses: actions/checkout@v3 - run: cargo fmt -- --check @@ -46,22 +43,14 @@ jobs: uses: actions/checkout@v3 - name: Install rust toolchain (v${{ env.MIN_SUPPORTED_RUST_VERSION }}) - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.MIN_SUPPORTED_RUST_VERSION }} - default: true - profile: minimal # minimal component installation (ie, no documentation) components: clippy - name: Run clippy (on minimum supported rust version to prevent warnings we can't fix) - uses: actions-rs/cargo@v1 - with: - command: clippy - args: --locked --all-targets ${{ env.MSRV_FEATURES }} + run: cargo clippy --locked --all-targets ${{ env.MSRV_FEATURES }} - name: Run tests - uses: actions-rs/cargo@v1 - with: - command: test - args: --locked ${{ env.MSRV_FEATURES }} + run: cargo test --locked ${{ env.MSRV_FEATURES }} test_with_new_syntaxes_and_themes: name: Run tests with updated syntaxes and themes @@ -72,33 +61,17 @@ jobs: with: submodules: true # we need all syntax and theme submodules - name: Install Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - default: true - profile: minimal + uses: dtolnay/rust-toolchain@stable - name: Build and install bat - uses: actions-rs/cargo@v1 - with: - command: install - args: --locked --path . + run: cargo install --locked --path . - name: Rebuild binary assets (syntaxes and themes) run: bash assets/create.sh - name: Build and install bat with updated assets - uses: actions-rs/cargo@v1 - with: - command: install - args: --locked --path . + run: cargo install --locked --path . - name: Run unit tests with new syntaxes and themes - uses: actions-rs/cargo@v1 - with: - command: test - args: --locked --release + run: cargo test --locked --release - name: Run ignored-by-default unit tests with new syntaxes and themes - uses: actions-rs/cargo@v1 - with: - command: test - args: --locked --release --test assets -- --ignored + run: cargo test --locked --release --test assets -- --ignored - name: Syntax highlighting regression test run: tests/syntax-tests/regression_test.sh - name: List of languages @@ -118,21 +91,11 @@ jobs: run: | echo "BAT_SYSTEM_CONFIG_PREFIX=$GITHUB_WORKSPACE/tests/examples/system_config" >> $GITHUB_ENV - name: Install Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - default: true - profile: minimal + uses: dtolnay/rust-toolchain@stable - name: Build and install bat - uses: actions-rs/cargo@v1 - with: - command: install - args: --locked --path . + run: cargo install --locked --path . - name: Run unit tests - uses: actions-rs/cargo@v1 - with: - command: test - args: --locked --test system_wide_config -- --ignored + run: cargo test --locked --test system_wide_config -- --ignored documentation: name: Documentation @@ -141,18 +104,11 @@ jobs: - name: Git checkout uses: actions/checkout@v3 - name: Install Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - default: true - profile: minimal + uses: dtolnay/rust-toolchain@stable - name: Check documentation env: RUSTDOCFLAGS: -D warnings - uses: actions-rs/cargo@v1 - with: - command: doc - args: --locked --no-deps --document-private-items --all-features + run: cargo doc --locked --no-deps --document-private-items --all-features - name: Show man page run: man $(find . -name bat.1) @@ -174,6 +130,8 @@ jobs: - { target: x86_64-pc-windows-msvc , os: windows-2019 } - { target: x86_64-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true } - { target: x86_64-unknown-linux-musl , os: ubuntu-20.04, use-cross: true } + env: + BUILD_CMD: cargo steps: - name: Checkout source code uses: actions/checkout@v3 @@ -195,12 +153,20 @@ jobs: echo "PROJECT_HOMEPAGE=$(sed -n 's/^homepage = "\(.*\)"/\1/p' Cargo.toml)" >> $GITHUB_ENV - name: Install Rust toolchain - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: - toolchain: stable - target: ${{ matrix.job.target }} - override: true - profile: minimal # minimal component installation (ie, no documentation) + targets: ${{ matrix.job.target }} + + - name: Install cross + if: matrix.job.use-cross + uses: taiki-e/install-action@v2 + with: + tool: cross + + - name: Overwrite build command env variable + if: matrix.job.use-cross + shell: bash + run: echo "BUILD_CMD=cross" >> $GITHUB_ENV - name: Show version information (Rust, cargo, GCC) shell: bash @@ -213,11 +179,8 @@ jobs: rustc -V - name: Build - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: build - args: --locked --release --target=${{ matrix.job.target }} + shell: bash + run: $BUILD_CMD build --locked --release --target=${{ matrix.job.target }} - name: Strip debug information from executable id: strip @@ -265,60 +228,36 @@ jobs: echo ::set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS} - name: Run tests - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: test - args: --locked --target=${{ matrix.job.target }} ${{ steps.test-options.outputs.CARGO_TEST_OPTIONS}} + shell: bash + run: $BUILD_CMD test --locked --target=${{ matrix.job.target }} ${{ steps.test-options.outputs.CARGO_TEST_OPTIONS}} - name: Run bat - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: run - args: --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs + shell: bash + run: $BUILD_CMD run --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs - name: Show diagnostics (bat --diagnostic) - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: run - args: --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs --diagnostic + shell: bash + run: $BUILD_CMD run --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs --diagnostic - name: "Feature check: regex-onig" - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: check - args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig + shell: bash + run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig - name: "Feature check: regex-onig,git" - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: check - args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git + shell: bash + run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git - name: "Feature check: regex-onig,paging" - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: check - args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,paging + shell: bash + run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,paging - name: "Feature check: regex-onig,git,paging" - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: check - args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git,paging + shell: bash + run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git,paging - name: "Feature check: minimal-application" - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: check - args: --locked --target=${{ matrix.job.target }} --verbose --no-default-features --features minimal-application + shell: bash + run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --no-default-features --features minimal-application - name: Create tarball id: package