Skip to content

Commit

Permalink
Merge pull request #151 from tgross35/fix-ci
Browse files Browse the repository at this point in the history
Check only (no longer test) at the MSRV
  • Loading branch information
tgross35 authored Dec 28, 2024
2 parents 49ee1e9 + 1dff477 commit b93bca1
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 16 deletions.
60 changes: 45 additions & 15 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Continuous integration
name: CI

on:
pull_request:
Expand All @@ -7,29 +7,59 @@ on:
- master

jobs:
os_tests:
name: "Tests / OS: ${{ matrix.os }} - ${{ matrix.channel }}"
test:
name: Tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
channel:
- stable
- beta
- nightly
- 1.23.0
- stable
- nightly
- 1.63.0 # MSRV of test dependencies
os:
# FIXME: compiling with 1.23 on macOS 12 fails to linL
# archive member 'rust.metadata.bin' with length 40821 is not mach-o or llvm bitcode file
- macos-11
- windows-2022
- ubuntu-22.04
- macos-13 # x86 MacOS
- macos-15 # Arm MacOS
- windows-2025
- ubuntu-24.04
include:
- channel: beta
os: ubuntu-24.04

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Update rust
run: rustup update ${{ matrix.channel }} --no-self-update
run: |
rustup default ${{ matrix.channel }}
rustup update --no-self-update
- name: Tests
run: cargo +${{ matrix.channel }} test --all
- run: cargo test --all

msrv:
name: Check building with the MSRV
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Update rust
run: |
rustup default 1.23.0
rustup update --no-self-update
- run: cargo build

success:
needs:
- test
- msrv
runs-on: ubuntu-latest
# GitHub branch protection is exceedingly silly and treats "jobs skipped because a dependency
# failed" as success. So we have to do some contortions to ensure the job fails if any of its
# dependencies fails.
if: always() # make sure this is never "skipped"
steps:
# Manually check the status of all dependencies. `if: failure()` does not work.
- name: check if any dependency failed
run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ description = """
Support for matching file paths against Unix shell style patterns.
"""
categories = ["filesystem"]
rust-version = "1.23.0"

[dev-dependencies]
# FIXME: Replace it with `tempfile` once we bump up MSRV.
# FIXME: This should be replaced by `tempfile`
tempdir = "0.3"
doc-comment = "0.3"

0 comments on commit b93bca1

Please sign in to comment.