Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Check to build Roadster with all combinations (powerset) of features. Because we have a bunch of features, the | |
# powerset of all features is quite large, meaning we need to run a large number of iterations of the tests. To | |
# conserve CI usage, as well as mimimize CI time needed on PRs, we'll only run checks against the feature powerset | |
# once a week, and only if a commit was merged in the past week. | |
name: Feature Powerset | |
on: | |
schedule: | |
# Run once a week on Friday at 1AM UTC (6PM PST) | |
- cron: '0 1 * * 5' | |
workflow_dispatch: | |
pull_request: | |
branches: [ main ] | |
types: [ labeled ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
# https://stackoverflow.com/questions/63014786/how-to-schedule-a-github-actions-nightly-build-but-run-it-only-when-there-where | |
check_trigger: | |
runs-on: ubuntu-latest | |
name: Check trigger | |
outputs: | |
should_run1: ${{ steps.should_run.outputs.should_run1 }} | |
should_run2: ${{ steps.should_run.outputs.should_run2 }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: print latest_commit | |
run: echo ${{ github.sha }} | |
- id: should_run1 | |
continue-on-error: true | |
name: Check latest commit is less than a week | |
if: ${{ github.event_name == 'schedule' }} | |
run: test $(git rev-list --after="7 days" ${{ github.sha }}) && echo "should_run1=true" >> "$GITHUB_OUTPUT" | |
- name: print label | |
run: echo ${{ github.event.label.name }} | |
- id: should_run2 | |
continue-on-error: true | |
name: Check that the powerset_check label was added | |
if: ${{ github.event_name == 'pull_request' && github.event.label.name == 'powerset_check' }} | |
run: echo "should_run2=true" >> "$GITHUB_OUTPUT" | |
roadster_feature_powerset: | |
needs: check_trigger | |
if: ${{ needs.check_trigger.outputs.should_run1 == 'true' || needs.check_trigger.outputs.should_run2 == 'true' || github.event_name == 'workflow_dispatch' }} | |
name: Feature powerset | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
- uses: taiki-e/install-action@cargo-hack | |
- name: Test | |
run: cargo hack test --no-fail-fast --feature-powerset --workspace | |
- name: Check | |
run: cargo hack check --feature-powerset --no-dev-deps --workspace | |
- name: Clippy | |
run: cargo hack clippy --workspace --all-targets --feature-powerset -- -D warnings |