Skip to content

Commit

Permalink
CI: use single hash and rename things
Browse files Browse the repository at this point in the history
Qualify job names so they are easier to read in PRs.
  • Loading branch information
niklasdewally committed Nov 3, 2023
1 parent 4799c42 commit 984f12d
Show file tree
Hide file tree
Showing 9 changed files with 219 additions and 210 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# https://ectobit.com/blog/speed-up-github-actions-rust-pipelines/
name: "solvers/chuffed"
on:
workflow_dispatch:
push:
paths:
- "solvers/chuffed/**"
Expand All @@ -10,22 +11,20 @@ on:
paths:
- "solvers/chuffed/**"
- "Cargo.*"
workflow_dispatch:


jobs:
ubuntu:
name: "solvers/chuffed: Ubuntu Build"
name: "Chuffed: Ubuntu Build"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

# https://stackoverflow.com/questions/32327108/get-the-current-commit-id-of-specified-submodule
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
- name: Get chuffed hash for cache invalidation
id: chuffed-cache
- name: Generate caching variables
id: cache-vars
run: |
echo "chuffed_sha=$(git rev-parse HEAD:solvers/chuffed/vendor)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
- name: Set up cache
uses: actions/cache@v3
Expand All @@ -37,9 +36,9 @@ jobs:
~/.cargo/git/db/
target/
solvers/chuffed/vendor
key: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
# match chuffed exactly, cargo inexactly
restore-keys: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha}}-cargo-
key: stable-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: stable-${{ runner.os }}-gitmodules-

- working-directory: ./solvers/chuffed
run: rustup update stable && rustup default stable
Expand All @@ -48,15 +47,16 @@ jobs:
run: cargo build -vv

mac:
name: "solvers/chuffed: Mac Build"
name: "Chuffed: Mac Build"
runs-on: macos-latest
steps:
- uses: actions/checkout@v2

- name: Get chuffed hash for cache invalidation
id: chuffed-cache
- name: Generate caching variables
id: cache-vars
run: |
echo "chuffed_sha=$(git rev-parse HEAD:solvers/chuffed/vendor)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
- name: Set up cache
uses: actions/cache@v3
Expand All @@ -68,9 +68,9 @@ jobs:
~/.cargo/git/db/
target/
solvers/chuffed/vendor
key: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
# match chuffed exactly, cargo inexactly
restore-keys: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha}}-cargo-
key: stable-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: stable-${{ runner.os }}-gitmodules-

- working-directory: ./solvers/chuffed
run: rustup update stable && rustup default stable
Expand All @@ -82,17 +82,19 @@ jobs:
run: cargo build -vv

tests:
name: "solvers/chuffed: Tests"
name: "Chuffed: Tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

# https://stackoverflow.com/questions/32327108/get-the-current-commit-id-of-specified-submodule
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
- name: Get chuffed hash for cache invalidation
id: chuffed-cache
- name: Generate caching variables
id: cache-vars
run: |
echo "chuffed_sha=$(git rev-parse HEAD:solvers/chuffed/vendor)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
echo "cache_paths=$(./etc/ci/get_caching_paths.sh)" >> "$GITHUB_OUTPUT"
echo "cache_paths=$(./etc/ci/get_caching_paths.sh)"
- name: Set up cache
uses: actions/cache@v3
Expand All @@ -104,9 +106,9 @@ jobs:
~/.cargo/git/db/
target/
solvers/chuffed/vendor
key: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
# match chuffed exactly, cargo inexactly
restore-keys: ${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha}}-cargo-
key: stable-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: stable-${{ runner.os }}-gitmodules-

- working-directory: ./solvers/chuffed
run: rustup update stable && rustup default stable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: 'Info: Code Coverage'
name: 'Code Coverage'
on:
push:
pull_request:
Expand All @@ -10,33 +10,33 @@ permissions:

jobs:
coverage:
name: "Coverage Report"
name: "Info: Code Coverage Reports"
# only do coverage for ready PRs
if: ${{ github.event != 'pull_request' || ( github.event == 'pull_request' && (! github.event.pull_request.draft)) }}
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2

- name: Get submodule hashes for cache invalidation
id: cache-hashes
- name: Generate caching variables
id: cache-vars
run: |
echo "shas=$(git rev-parse HEAD:solvers/minion/vendor)-$(git rev-parse HEAD:solvers/chuffed/vendor)"
echo "shas=$(git rev-parse HEAD:solvers/minion/vendor)-$(git rev-parse HEAD:solvers/chuffed/vendor)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
- name: Set up cache
uses: actions/cache@v3
with:
path: |
path:
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
solvers/minion/vendor
solvers/chuffed/vendor
key: nightly-${{ runner.os }}-solvers-${{ steps.cache-hashes.outputs.shas }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: nightly-${{ runner.os }}-solvers-${{ steps.cache-hashes.outputs.shas }}-cargo-

key: nightly-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: nightly-${{ runner.os }}-gitmodules-

- name: Install rust nightly
working-directory: ./solvers/minion
Expand Down Expand Up @@ -66,7 +66,7 @@ jobs:
branch: gh-pages
commit-message: "Actions: Code Coverage for ${{ github.sha }}"

- name: Update latest code coverage if on main.
- name: If on main branch, copy coverage report to /latest.
if: github.ref == 'refs/heads/main'
uses: JamesIves/github-pages-deploy-action@v4
with:
Expand Down
49 changes: 29 additions & 20 deletions .github/workflows/doc-coverage.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
name: 'Info: Documentation Coverage'
name: "Documentation Coverage"
on:
push:
pull_request:
workflow_dispatch:

jobs:
minion:
name: 'Minion'
name: 'Info: Doc Coverage Report for Minion'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2


- name: Get minion hash for cache invalidation
id: minion-cache
- name: Generate caching variables
id: cache-vars
run: |
echo "minion_sha=$(git rev-parse HEAD:solvers/minion/vendor)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
- name: Set up cache
uses: actions/cache@v3
Expand All @@ -27,8 +27,9 @@ jobs:
~/.cargo/git/db/
target/
solvers/minion/vendor
key: nightly-${{ runner.os }}-minion-${{ steps.minion-cache.outputs.minion_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: nightly-${{ runner.os }}-minion-${{ steps.minion-cache.outputs.minion_sha}}-cargo-
key: nightly-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: nightly-${{ runner.os }}-gitmodules-

- name: Use nightly
run: rustup update nightly && rustup default nightly
Expand All @@ -41,15 +42,16 @@ jobs:
echo '```' >> $GITHUB_STEP_SUMMARY
chuffed:
name: 'Chuffed'
name: 'Info: Doc Coverage Report for Chuffed'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Get chuffed hash for cache invalidation
id: chuffed-cache
- name: Generate caching variables
id: cache-vars
run: |
echo "chuffed_sha=$(git rev-parse HEAD:solvers/chuffed/vendor)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
- name: Set up cache
uses: actions/cache@v3
Expand All @@ -61,9 +63,9 @@ jobs:
~/.cargo/git/db/
target/
solvers/chuffed/vendor
key: nightly-${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
# match chuffed exactly, cargo inexactly
restore-keys: nightly-${{ runner.os }}-chuffed-${{ steps.chuffed-cache.outputs.chuffed_sha}}-cargo-
key: nightly-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: nightly-${{ runner.os }}-gitmodules-

- name: Use nightly
run: rustup update nightly && rustup default nightly
Expand All @@ -76,11 +78,17 @@ jobs:
echo '```' >> $GITHUB_STEP_SUMMARY
conjure-oxide:
name: 'Conjure Oxide'
name: 'Info: Doc Coverage Report for Conjure Oxide'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Generate caching variables
id: cache-vars
run: |
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)" >> "$GITHUB_OUTPUT"
echo -e "submodule_sha=$(./etc/ci/get_submodules_hash.sh)"
- name: Set up cache
uses: actions/cache@v3
with:
Expand All @@ -89,11 +97,12 @@ jobs:
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
~/solvers/minion/vendor
~/solvers/chuffed/vendor
target/
key: nightly-conjureoxide-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: nightly-conjureoxide-${{ runner.os }}-cargo
solvers/chuffed/vendor
solvers/minion/vendor
key: nightly-${{ runner.os }}-gitmodules-${{ steps.cache-vars.outputs.submodule_sha }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: nightly-${{ runner.os }}-gitmodules-

- name: Use nightly
run: rustup update nightly && rustup default nightly
Expand Down
12 changes: 5 additions & 7 deletions .github/workflows/rustfmt.yml → .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
# see: https://github.com/marketplace/actions/rust-rustfmt-check

name: rustfmt
name: "Formatting"

on:
pull_request:

permissions:
pull-requests: write
push:

jobs:
format:
rust:
name: "Check Rust Formatting"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Check rust formatting
run: cargo fmt --check
- run: cargo fmt --check
Loading

0 comments on commit 984f12d

Please sign in to comment.