From ae17c8ca0b512128e6c06c765271d8046fc972cb Mon Sep 17 00:00:00 2001 From: Yuval Shavit Date: Thu, 27 Feb 2025 23:42:45 -0500 Subject: [PATCH 1/7] add msrv check --- .github/workflows/rust.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 3c7e169..5832f69 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,6 +27,17 @@ jobs: echo "::error file=$file_path,title=git-status::<$status_code> $file_path" done <<<"$(git status --porcelain)" exit "$exit_code" + - run: cargo install cargo-msrv --locked + - run: cargo msrv find + - run: exit 1 + msrv: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v4 + - run: cargo install cargo-msrv --locked + - run: cargo msrv find + check: runs-on: ubuntu-latest needs: build From f9014dc0b0678a60dba8f5058b3e048c8ea27d17 Mon Sep 17 00:00:00 2001 From: Yuval Shavit Date: Thu, 27 Feb 2025 23:55:54 -0500 Subject: [PATCH 2/7] use docker --- .github/workflows/rust.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 5832f69..a9383d9 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,8 +27,8 @@ jobs: echo "::error file=$file_path,title=git-status::<$status_code> $file_path" done <<<"$(git status --porcelain)" exit "$exit_code" - - run: cargo install cargo-msrv --locked - - run: cargo msrv find + - run: docker pull foresterre/cargo-msrv + - run: docker run --rm -t -v "$PWD/":/app/ foresterre/cargo-msrv find - run: exit 1 msrv: runs-on: ubuntu-latest From e2a7393f168c78a30fb4f67de557b7384be20166 Mon Sep 17 00:00:00 2001 From: Yuval Shavit Date: Fri, 28 Feb 2025 00:04:51 -0500 Subject: [PATCH 3/7] output and logging --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index a9383d9..4561434 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -28,7 +28,7 @@ jobs: done <<<"$(git status --porcelain)" exit "$exit_code" - run: docker pull foresterre/cargo-msrv - - run: docker run --rm -t -v "$PWD/":/app/ foresterre/cargo-msrv find + - run: docker run --rm -t -v "$PWD/":/app/ foresterre/cargo-msrv find --no-log --output-format minimal - run: exit 1 msrv: runs-on: ubuntu-latest From f8ba3ffbaa69af539d5228ffdcc0133b26354709 Mon Sep 17 00:00:00 2001 From: Yuval Shavit Date: Fri, 28 Feb 2025 00:19:48 -0500 Subject: [PATCH 4/7] various things to get msrv working --- .github/workflows/rust.yml | 33 ++++++++++++++++++++++++++++----- README.md | 13 +++++++++++++ 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 4561434..5e6aaca 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,16 +27,39 @@ jobs: echo "::error file=$file_path,title=git-status::<$status_code> $file_path" done <<<"$(git status --porcelain)" exit "$exit_code" - - run: docker pull foresterre/cargo-msrv - - run: docker run --rm -t -v "$PWD/":/app/ foresterre/cargo-msrv find --no-log --output-format minimal - - run: exit 1 msrv: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v4 - - run: cargo install cargo-msrv --locked - - run: cargo msrv find + - name: find version mentioned in readme + id: readme-version + run: | + set -euo pipefail + pwd + mkdir -p target/debug + cargo build + readme_version="$(cat README.md | ./target/debug/mdq '# Development | P: "Requires rustc >=" ' | awk '{print $NF}')" + echo "Found version in readme: <$readme_version>" + echo "result=$readme_version" >> "$GITHUB_OUTPUT" + - name: pull cargo-msrv from docker hub + run: docker pull foresterre/cargo-msrv + - name: find minimum supported rust version + id: run-msrv + run: | + set -euo pipefail + min_version="$(docker run --rm -t -v "$PWD/":/app/ foresterre/cargo-msrv find --no-log --output-format minimal | tr -d $'\r\n')" + echo "Found version in cargo-msrv: <$min_version>" + echo "result=$min_version" >> "$GITHUB_OUTPUT" + - name: compare versions + run: | + if [[ "$MSRV_VERSION" != "$README_VERSION" ]]; then + echo "::error title=msrv-mismatch::cargo-msrv was $MSRV_VERSION but README.md says rustc >= $README_VERSION" + exit 1 + fi + env: + MSRV_VERSION: ${{ steps.run-msrv.outputs.result }} + README_VERSION: ${{ steps.readme-version.outputs.result }} check: runs-on: ubuntu-latest diff --git a/README.md b/README.md index 455a40a..41237e8 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ Any of these will work: 1. ```shell cargo install --git https://github.com/yshavit/mdq + ``` 2. ```shell brew install mdq ``` @@ -179,3 +180,15 @@ cat oncall.md | mdq ':-: * :-: 2024-01-15' |:----------:|:-----:|:---:|:---:|----:| | 2024-01-15 | | | x | | ``` + +# Development + +Requires rustc >= 1.20.0 + +```bash +cargo build +``` + +```bash +cargo test +``` From 861ba548901f5a2e68eab1794a4cdaecbacf8d23 Mon Sep 17 00:00:00 2001 From: Yuval Shavit Date: Fri, 28 Feb 2025 01:31:41 -0500 Subject: [PATCH 5/7] move to a separate workflow --- .github/workflows/readme-checks.yml | 44 +++++++++++++++++++++++++++++ .github/workflows/rust.yml | 33 ---------------------- 2 files changed, 44 insertions(+), 33 deletions(-) create mode 100644 .github/workflows/readme-checks.yml diff --git a/.github/workflows/readme-checks.yml b/.github/workflows/readme-checks.yml new file mode 100644 index 0000000..ce57994 --- /dev/null +++ b/.github/workflows/readme-checks.yml @@ -0,0 +1,44 @@ +name: rust + +on: + push: + branches: [ "main" ] + workflow_dispatch: {} + +env: + CARGO_TERM_COLOR: always + +jobs: + check msrv: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v4 + - name: find version mentioned in readme + id: readme-version + run: | + set -euo pipefail + pwd + mkdir -p target/debug + cargo build + readme_version="$(cat README.md | ./target/debug/mdq '# Development | P: "Requires rustc >=" ' | awk '{print $NF}')" + echo "Found version in readme: <$readme_version>" + echo "result=$readme_version" >> "$GITHUB_OUTPUT" + - name: pull cargo-msrv from docker hub + run: docker pull foresterre/cargo-msrv + - name: find minimum supported rust version + id: run-msrv + run: | + set -euo pipefail + min_version="$(docker run --rm -t -v "$PWD/":/app/ foresterre/cargo-msrv find --no-log --output-format minimal | tr -d $'\r\n')" + echo "Found version in cargo-msrv: <$min_version>" + echo "result=$min_version" >> "$GITHUB_OUTPUT" + - name: compare versions + run: | + if [[ "$MSRV_VERSION" != "$README_VERSION" ]]; then + echo "::error title=msrv-mismatch::cargo-msrv was $MSRV_VERSION but README.md says rustc >= $README_VERSION" + exit 1 + fi + env: + MSRV_VERSION: ${{ steps.run-msrv.outputs.result }} + README_VERSION: ${{ steps.readme-version.outputs.result }} diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 5e6aaca..2341327 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,39 +27,6 @@ jobs: echo "::error file=$file_path,title=git-status::<$status_code> $file_path" done <<<"$(git status --porcelain)" exit "$exit_code" - msrv: - runs-on: ubuntu-latest - needs: build - steps: - - uses: actions/checkout@v4 - - name: find version mentioned in readme - id: readme-version - run: | - set -euo pipefail - pwd - mkdir -p target/debug - cargo build - readme_version="$(cat README.md | ./target/debug/mdq '# Development | P: "Requires rustc >=" ' | awk '{print $NF}')" - echo "Found version in readme: <$readme_version>" - echo "result=$readme_version" >> "$GITHUB_OUTPUT" - - name: pull cargo-msrv from docker hub - run: docker pull foresterre/cargo-msrv - - name: find minimum supported rust version - id: run-msrv - run: | - set -euo pipefail - min_version="$(docker run --rm -t -v "$PWD/":/app/ foresterre/cargo-msrv find --no-log --output-format minimal | tr -d $'\r\n')" - echo "Found version in cargo-msrv: <$min_version>" - echo "result=$min_version" >> "$GITHUB_OUTPUT" - - name: compare versions - run: | - if [[ "$MSRV_VERSION" != "$README_VERSION" ]]; then - echo "::error title=msrv-mismatch::cargo-msrv was $MSRV_VERSION but README.md says rustc >= $README_VERSION" - exit 1 - fi - env: - MSRV_VERSION: ${{ steps.run-msrv.outputs.result }} - README_VERSION: ${{ steps.readme-version.outputs.result }} check: runs-on: ubuntu-latest From 7169984d0e303aaea75854d68f48a8002598c018 Mon Sep 17 00:00:00 2001 From: Yuval Shavit Date: Fri, 28 Feb 2025 01:35:12 -0500 Subject: [PATCH 6/7] add notices --- .github/workflows/readme-checks.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/readme-checks.yml b/.github/workflows/readme-checks.yml index ce57994..e868496 100644 --- a/.github/workflows/readme-checks.yml +++ b/.github/workflows/readme-checks.yml @@ -35,6 +35,8 @@ jobs: echo "result=$min_version" >> "$GITHUB_OUTPUT" - name: compare versions run: | + echo "::notice title=cargo-msrv::$MSRV_VERSION" + echo "::notice title=README.md-msrv::$README_VERSION" if [[ "$MSRV_VERSION" != "$README_VERSION" ]]; then echo "::error title=msrv-mismatch::cargo-msrv was $MSRV_VERSION but README.md says rustc >= $README_VERSION" exit 1 From ec8ea60c4a2e09905c66ec34350f59ea7b20c080 Mon Sep 17 00:00:00 2001 From: Yuval Shavit Date: Fri, 28 Feb 2025 01:38:09 -0500 Subject: [PATCH 7/7] rm superfluous echos --- .github/workflows/readme-checks.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/readme-checks.yml b/.github/workflows/readme-checks.yml index e868496..9900daa 100644 --- a/.github/workflows/readme-checks.yml +++ b/.github/workflows/readme-checks.yml @@ -22,7 +22,6 @@ jobs: mkdir -p target/debug cargo build readme_version="$(cat README.md | ./target/debug/mdq '# Development | P: "Requires rustc >=" ' | awk '{print $NF}')" - echo "Found version in readme: <$readme_version>" echo "result=$readme_version" >> "$GITHUB_OUTPUT" - name: pull cargo-msrv from docker hub run: docker pull foresterre/cargo-msrv @@ -31,7 +30,6 @@ jobs: run: | set -euo pipefail min_version="$(docker run --rm -t -v "$PWD/":/app/ foresterre/cargo-msrv find --no-log --output-format minimal | tr -d $'\r\n')" - echo "Found version in cargo-msrv: <$min_version>" echo "result=$min_version" >> "$GITHUB_OUTPUT" - name: compare versions run: |