diff options
| author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2023-03-04 21:10:24 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-04 21:10:24 +0000 |
| commit | 7c7d6558f6d9c50fbb4d2487c98c9a5be15f2f7b (patch) | |
| tree | 80a47f0dc40059014e9448c4c2eb34c54dff45fe /.github | |
| parent | 1c5db277e4161470136dbd2a11e914ff1d383581 (diff) | |
| parent | 98c5490d94950608d31cd5ad9dd260f2f853735c (diff) | |
Merge #694
694: RTIC 2 r=AfoHT a=korken89
Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
Co-authored-by: Per Lindgren <per.lindgren@ltu.se>
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/build.yml | 579 | ||||
| -rw-r--r-- | .github/workflows/changelog.yml | 51 | ||||
| -rw-r--r-- | .github/workflows/matrix-bot.yml | 6 |
3 files changed, 394 insertions, 242 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5e1467c..300bea5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,22 +11,28 @@ on: env: CARGO_TERM_COLOR: always + DEV_VERSION: 2 + STABLE_VERSION: 1 + OLDSTABLE_VERSION: 0.5 + OLDOLDSTABLE_VERSION: 0.4 jobs: - # Run cargo fmt --check, includes macros/ - style: - name: style + # Run cargo xtask format-check + formatcheck: + name: cargo fmt runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v3 - name: Fail on warnings - run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs + run: find . -type f -name lib.rs -execdir sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' {} + + - name: Cache Dependencies + uses: Swatinem/rust-cache@v2 - - name: cargo fmt --check - run: cargo fmt --all -- --check + - name: cargo xtask format-check + run: cargo xtask format-check # Compilation check check: @@ -34,98 +40,125 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - target: - - thumbv7m-none-eabi - - thumbv6m-none-eabi - - x86_64-unknown-linux-gnu + backend: + - thumbv7 + - thumbv6 + - thumbv8-base + - thumbv8-main toolchain: - - stable + - nightly steps: - name: Checkout uses: actions/checkout@v3 - name: Install Rust ${{ matrix.toolchain }} run: | - rustup set profile minimal rustup override set ${{ matrix.toolchain }} - - name: Configure Rust target (${{ matrix.target }}) - run: rustup target add ${{ matrix.target }} + - name: Configure Rust target (v6, v7, v8.b v8.m) + run: | + rustup target add thumbv7m-none-eabi + rustup target add thumbv6m-none-eabi + rustup target add thumbv8m.base-none-eabi + rustup target add thumbv8m.main-none-eabi - name: Fail on warnings - run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs + run: find . -type f -name lib.rs -execdir sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' {} + - name: Cache Dependencies uses: Swatinem/rust-cache@v2 - - name: cargo check - run: cargo check --target=${{ matrix.target }} + - run: cargo xtask --verbose --backend ${{ matrix.backend }} check # Clippy clippy: - name: Cargo clippy + name: clippy runs-on: ubuntu-22.04 + strategy: + matrix: + backend: + - thumbv7 + - thumbv6 + - thumbv8-base + - thumbv8-main + toolchain: + - nightly steps: - name: Checkout uses: actions/checkout@v3 - - name: Fail on warnings - run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs + - name: Install Rust ${{ matrix.toolchain }} + run: | + rustup override set ${{ matrix.toolchain }} + + - name: Configure Rust target (v6, v7, v8.b v8.m) + run: | + rustup target add thumbv7m-none-eabi + rustup target add thumbv6m-none-eabi + rustup target add thumbv8m.base-none-eabi + rustup target add thumbv8m.main-none-eabi - name: Add Rust component clippy run: rustup component add clippy + - name: Fail on warnings + run: find . -type f -name lib.rs -execdir sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' {} + + - name: Cache Dependencies uses: Swatinem/rust-cache@v2 - - name: cargo clippy - run: cargo clippy + - run: cargo xtask --verbose --backend ${{ matrix.backend }} clippy # Verify all examples, checks checkexamples: - name: checkexamples + name: check examples runs-on: ubuntu-22.04 strategy: matrix: - target: - - thumbv7m-none-eabi - - thumbv6m-none-eabi - - thumbv8m.base-none-eabi - - thumbv8m.main-none-eabi + backend: + - thumbv7 + - thumbv6 + - thumbv8-base + - thumbv8-main toolchain: - - stable + - nightly steps: - name: Checkout uses: actions/checkout@v3 - name: Install Rust ${{ matrix.toolchain }} run: | - rustup set profile minimal rustup override set ${{ matrix.toolchain }} - - name: Configure Rust target (${{ matrix.target }}) - run: rustup target add ${{ matrix.target }} - - - name: Add Rust component llvm-tools-preview - run: rustup component add llvm-tools-preview + - name: Configure Rust target (v6, v7, v8.b v8.m) + run: | + rustup target add thumbv7m-none-eabi + rustup target add thumbv6m-none-eabi + rustup target add thumbv8m.base-none-eabi + rustup target add thumbv8m.main-none-eabi - name: Cache Dependencies uses: Swatinem/rust-cache@v2 - name: Check the examples - run: cargo check --examples --target=${{ matrix.target }} + if: ${{ matrix.backend == 'thumbv8-base' }} + run: cargo xtask --verbose --backend ${{ matrix.backend }} --exampleexclude pool example-check + + - name: Check the examples + if: ${{ matrix.backend != 'thumbv8-base' }} + run: cargo xtask --verbose --backend ${{ matrix.backend }} example-check # Verify the example output with run-pass tests testexamples: - name: testexamples + name: QEMU run runs-on: ubuntu-22.04 strategy: matrix: - target: - - thumbv7m-none-eabi - - thumbv6m-none-eabi + backend: + - thumbv7 + - thumbv6 toolchain: - - stable + - nightly steps: - name: Checkout uses: actions/checkout@v3 @@ -135,15 +168,19 @@ jobs: rustup set profile minimal rustup override set ${{ matrix.toolchain }} - - name: Configure Rust target (${{ matrix.target }}) - run: rustup target add ${{ matrix.target }} + - name: Configure Rust target (v6, v7) + run: | + rustup target add thumbv7m-none-eabi + rustup target add thumbv6m-none-eabi - name: Add Rust component llvm-tools-preview run: rustup component add llvm-tools-preview # Use precompiled binutils - - name: cargo install cargo-binutils - run: cargo install cargo-binutils + - name: Install cargo-binutils + uses: taiki-e/install-action@v2 + with: + tool: cargo-binutils - name: Cache Dependencies uses: Swatinem/rust-cache@v2 @@ -154,46 +191,32 @@ jobs: sudo apt install -y qemu-system-arm - name: Fail on warnings - run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs + working-directory: ./rtic + run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs - name: Run-pass tests - run: cargo xtask --target ${{ matrix.target }} + run: cargo xtask --verbose --backend ${{ matrix.backend }} qemu - # Check the correctness of macros/ crate - checkmacros: - name: checkmacros + # Run test suite + tests: + name: tests runs-on: ubuntu-22.04 strategy: + fail-fast: false matrix: - target: - - x86_64-unknown-linux-gnu - toolchain: - - stable - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Install Rust ${{ matrix.toolchain }} - run: | - rustup set profile minimal - rustup override set ${{ matrix.toolchain }} + backend: + - thumbv7 + - thumbv6 + - thumbv8-base + - thumbv8-main + package: + - rtic + - rtic-common + - rtic-macros + - rtic-monotonics + - rtic-sync + - rtic-time - - name: Configure Rust target (${{ matrix.target }}) - run: rustup target add ${{ matrix.target }} - - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2 - - - name: Fail on warnings - run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs - - - name: cargo check - run: cargo check --manifest-path macros/Cargo.toml --target=${{ matrix.target }} - - # Run the macros test-suite - testmacros: - name: testmacros - runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v3 @@ -201,139 +224,201 @@ jobs: - name: Cache Dependencies uses: Swatinem/rust-cache@v2 - - name: Fail on warnings - run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs - - - name: cargo check - run: cargo test --manifest-path macros/Cargo.toml - - # Run test suite - tests: - name: tests - runs-on: ubuntu-22.04 - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2 + - name: Configure Rust target (v6, v7, v8.b v8.m) + run: | + rustup target add thumbv7m-none-eabi + rustup target add thumbv6m-none-eabi + rustup target add thumbv8m.base-none-eabi + rustup target add thumbv8m.main-none-eabi - name: Fail on warnings - run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs + run: find . -type f -name lib.rs -execdir sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' {} + - name: Run cargo test - run: cargo test --test tests + run: cargo xtask --verbose --backend ${{ matrix.backend }} test ${{ matrix.package }} # Build documentation, check links docs: - name: docs + name: build docs runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v3 - - name: Cache pip installed linkchecker - uses: actions/cache@v3 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip - restore-keys: | - ${{ runner.os }}-pip- - - - name: Set up Python 3.x - uses: actions/setup-python@v4 + - name: Install lychee + uses: taiki-e/install-action@v2 with: - # Semantic version range syntax or exact version of a Python version - python-version: '3.x' - - # You can test your matrix by printing the current Python version - - name: Display Python version - run: python -c "import sys; print(sys.version)" - - - name: Install dependencies - run: pip install git+https://github.com/linkchecker/linkchecker.git + tool: lychee - name: Remove cargo-config run: rm -f .cargo/config - - name: Fail on warnings - run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs - - name: Build docs - run: cargo doc + # TODO: Any difference between backends? + run: cargo doc --features thumbv7-backend - name: Check links run: | td=$(mktemp -d) cp -r target/doc $td/api - linkchecker $td/api/rtic/ - linkchecker $td/api/cortex_m_rtic_macros/ + echo rtic + lychee --offline --format detailed $td/api/rtic/ + + echo rtic_common + lychee --offline --format detailed $td/api/rtic_common/ + + echo rtic_macros + lychee --offline --format detailed $td/api/rtic_macros/ + + echo rtic_monotonics + lychee --offline --format detailed $td/api/rtic_monotonics/ + + echo rtic_sync + lychee --offline --format detailed $td/api/rtic_sync/ + + echo rtic_time + lychee --offline --format detailed $td/api/rtic_time/ + + + - name: Archive the API docs + run: | + cp -r target/doc apidocs + tar -cf apidocs.tar apidocs + + - name: Store the API docs + uses: actions/upload-artifact@v3 + with: + name: apidocs + path: apidocs.tar # Build the books mdbook: - name: mdbook + name: build mdbook + needs: docs runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v3 - - name: Set up Python 3.x - uses: actions/setup-python@v4 - with: - # Semantic version range syntax or exact version of a Python version - python-version: '3.x' - # You can test your matrix by printing the current Python version - - name: Display Python version - run: python -c "import sys; print(sys.version)" + - name: Install lychee + uses: taiki-e/install-action@v2 + with: + tool: lychee - - name: Install dependencies - run: pip install git+https://github.com/linkchecker/linkchecker.git + - name: Install mdbook + uses: taiki-e/install-action@v2 + with: + tool: mdbook - - name: mdBook Action - uses: peaceiris/actions-mdbook@v1 + - name: Install mdbook-mermaid + uses: taiki-e/install-action@v2 with: - mdbook-version: 'latest' + tool: mdbook-mermaid - name: Build book in English - shell: 'script --return --quiet --command "bash {0}"' - run: cd book/en && if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then exit 1; else exit 0; fi + run: cargo xtask book - - name: Build book in Russian - shell: 'script --return --quiet --command "bash {0}"' - run: cd book/ru && if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then echo "Russian book needs updating!"; else exit 0; fi + - name: Download built API docs + uses: actions/download-artifact@v3 + with: + name: apidocs + + - name: Extract the API docs + run: tar -xf apidocs.tar - name: Check links run: | td=$(mktemp -d) mkdir $td/book cp -r book/en/book $td/book/en - cp -r book/ru/book $td/book/ru cp LICENSE-* $td/book/en - cp LICENSE-* $td/book/ru + cp -r apidocs/ $td/api - linkchecker $td/book/en/ - linkchecker $td/book/ru/ + lychee --offline --format detailed $td/book/en/ + mv $td bookroot - # Update stable branch - # - # This needs to run before book is built - mergetostablebranch: - name: If CI passes, merge master branch into release/vX + - name: Archive the book + API docs + run: | + tar -cf book.tar bookroot + + - name: Store the Book + API docs + uses: actions/upload-artifact@v3 + with: + name: book + path: book.tar + + mdbookold: + name: build docs and mdbook for older releases + needs: mergetostablebranch runs-on: ubuntu-22.04 - needs: - - style - - check - - clippy - - checkexamples - - testexamples - - checkmacros - - testmacros - - tests - - docs - - mdbook + steps: + - name: Checkout + uses: actions/checkout@v3 - # Only run this when pushing to master branch - if: github.ref == 'refs/heads/master' + - name: Install mdbook + uses: taiki-e/install-action@v2 + with: + tool: mdbook + + - name: Install mdbook-mermaid + uses: taiki-e/install-action@v2 + with: + tool: mdbook-mermaid + + - name: Remove cargo-config + run: rm -f .cargo/config + + - name: Prepare output folder + run: mkdir -p mdbookold + + - name: Fetch and build books for older versions + run: | + # The latest stable must be the first element in the array + vers=( "${{ env.STABLE_VERSION }}" "${{ env.OLDSTABLE_VERSION }}" ) + langs=( en ) + root=$(pwd) + webroot=$(pwd)/mdbookold + + for ver in ${vers[@]}; do + + mkdir -p src/$ver + src=$root/src/$ver + curl -L https://github.com/rtic-rs/rtic/archive/release/v${ver}.tar.gz | tar xz --strip-components 1 -C $src + + pushd $src + rm -f .cargo/config + cargo doc || cargo doc --features timer-queue + mkdir -p $webroot/$ver/book + cp -r target/doc $webroot/$ver/api + + sed 's|URL|rtic/index.html|g' $root/redirect.html > $webroot/$ver/api/index.html + popd + + for lang in ${langs[@]}; do + cargo xtask book build $src/book/$lang + + cp -r $src/book/$lang/book $webroot/$ver/book/$lang + cp LICENSE-* $webroot/$ver/book/$lang/ + done + # using master branch redirect file + sed 's|URL|book/en|g' $root/redirect.html > $webroot/$ver/index.html + + rm -rf $src + done + + - name: Archive the old books + run: | + tar -cf mdbookold.tar mdbookold + + - name: Store the old API docs + uses: actions/upload-artifact@v3 + with: + name: mdbookold + path: mdbookold.tar + + parseversion: + name: Parse the master branch RTIC version + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 @@ -341,18 +426,37 @@ jobs: id: crateversionbranch # Parse metadata for version number, extract the Semver Major run: | - VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="cortex-m-rtic") | .version') + VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="rtic") | .version') VERSIONMAJOR=${VERSION%.*.*} echo "branch=release/v$VERSIONMAJOR" >> $GITHUB_ENV echo "versionmajor=$VERSIONMAJOR" >> $GITHUB_ENV echo "version=$VERSION" >> $GITHUB_ENV - - uses: everlytic/branch-merge@1.1.5 - with: - github_token: ${{ github.token }} - source_ref: 'master' - target_branch: ${{ env.branch }} - commit_message_template: '[Bors] Merged {source_ref} into target {target_branch}' + + # Update stable branch + # + # This is only valid when current stable resides in + # master branch. + # As master moves on to development, the work on the + # stable version will happen in release/v"stable_version". + # Thus, no need to push changes + # + # This needs to run before book is built, as bookbuilding fetches from the branch + mergetostablebranch: + name: Merge branch into release/vX when pushing to master + runs-on: ubuntu-22.04 + needs: + - ci-success + - parseversion + + # Only run this when pushing to master branch + if: github.ref == 'refs/heads/master' + steps: + - uses: actions/checkout@v3 + + - name: Push to stable release branch if master contains stable version + if: ${{ env.versionmajor == env.STABLE_VERSION }} + run: git push -u origin ${{ env.branch }} # Only runs when pushing to master branch # Bors run CI against staging branch, @@ -362,65 +466,73 @@ jobs: name: deploy runs-on: ubuntu-22.04 needs: - mergetostablebranch + - mergetostablebranch + - docs + - mdbookold + - mdbook # Only run this when pushing to master branch if: github.ref == 'refs/heads/master' steps: - uses: actions/checkout@v3 - - name: Set up Python 3.x - uses: actions/setup-python@v4 + - name: Install lychee + uses: taiki-e/install-action@v2 with: - # Semantic version range syntax or exact version of a Python version - python-version: '3.x' - - # You can test your matrix by printing the current Python version - - name: Display Python version - run: python -c "import sys; print(sys.version)" + tool: lychee + - name: Install mdbook-mermaid + uses: taiki-e/install-action@v2 + with: + tool: mdbook-mermaid + - name: mdBook Action uses: peaceiris/actions-mdbook@v1 with: mdbook-version: 'latest' - - name: Get crate version - id: crateversion - # Parse metadata for version number, extract the Semver Major - run: | - VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="cortex-m-rtic") | .version') - VERSIONMAJOR=${VERSION%.*.*} - echo "branch=release/v$VERSIONMAJOR" >> $GITHUB_ENV - echo "versionmajor=$VERSIONMAJOR" >> $GITHUB_ENV - echo "version=$VERSION" >> $GITHUB_ENV - - name: Remove cargo-config run: rm -f .cargo/config - - name: Build docs - run: cargo doc + - name: Download built dev-ver book and API docs + uses: actions/download-artifact@v3 + with: + name: book + + - name: Extract the dev-version book and API docs + run: | + tar -xf book.tar + + - name: Download built old versions of books and API docs + uses: actions/download-artifact@v3 + with: + name: mdbookold - - name: Build books + - name: Extract the old version books and API docs + run: | + tar -xf mdbookold.tar + + - name: Prepare books shell: 'script --return --quiet --command "bash {0}"' run: | - langs=( en ru ) + langs=( en ) devver=( dev ) # The latest stable must be the first element in the array - vers=( "1" "0.5" "0.4" ) + vers=( "${{ env.STABLE_VERSION }}" "${{ env.OLDSTABLE_VERSION }}" ) # All releases start with "v" # followed by MAJOR.MINOR.PATCH, see semver.org # Store first in array as stable stable=${vers} - crateversion={{ env.versionmajor }} + crateversion=${{ env.versionmajor }} echo "Latest stable version: $stable" echo "Current crate version: $crateversion" # Create directories td=$(mktemp -d) - mkdir -p $td/$devver/book/ - cp -r target/doc $td/$devver/api + mkdir -p $td/$devver/ + cp -r bookroot/* $td/$devver/ # Redirect rtic.rs/meeting/index.html to hackmd mkdir $td/meeting @@ -441,53 +553,50 @@ jobs: else # If the current stable and the "dev" version in master branch # share the same major version, redirect dev/ to stable book + # This makes sense, preferable to have doc/book updates going live directly to rtic.rs sed 's|URL|rtic.rs/$stable/api/rtic|g' redirect.html > $td/$devver/api/index.html sed 's|URL|rtic.rs/$stable|g' redirect.html > $td/$devver/index.html fi - # Build books - for lang in ${langs[@]}; do - ( cd book/$lang && - if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then exit 1; else exit 0; fi - ) - cp -r book/$lang/book $td/$devver/book/$lang - cp LICENSE-* $td/$devver/book/$lang/ - done - - # Build older versions, including stable - root=$(pwd) - for ver in ${vers[@]}; do - prefix=${ver} - - mkdir -p $td/$prefix/book - src=$(mktemp -d) - curl -L https://github.com/rtic-rs/cortex-m-rtic/archive/release/v${ver}.tar.gz | tar xz --strip-components 1 -C $src - - pushd $src - rm -f .cargo/config - cargo doc || cargo doc --features timer-queue - cp -r target/doc $td/$prefix/api - sed 's|URL|rtic/index.html|g' $root/redirect.html > $td/$prefix/api/index.html - for lang in ${langs[@]}; do - ( cd book/$lang && - if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then exit 1; else exit 0; fi - ) - cp -r book/$lang/book $td/$prefix/book/$lang - cp LICENSE-* $td/$prefix/book/$lang/ - done - sed 's|URL|book/en|g' $root/redirect.html > $td/$prefix/index.html - popd - - rm -rf $src - done + # Package older versions, including stable # Copy the stable book to the stable alias - cp -r $td/$stable $td/stable + cp -r mdbookold/${{ env.STABLE_VERSION }} $td/stable + + # Copy the stable book to the webroot + cp -r mdbookold/${{ env.STABLE_VERSION }} $td/ + # Copy the old stable book to the webroot + cp -r mdbookold/${{ env.OLDSTABLE_VERSION }} $td/ # Forward CNAME file cp CNAME $td/ mv $td/ bookstodeploy + - name: Archive the webroot + run: | + tar -cf bookstodeploy.tar bookstodeploy + + - name: Store the books + uses: actions/upload-artifact@v3 + with: + name: bookstodeploy + path: bookstodeploy.tar + + ghapages: + name: Publish rtic.rs + runs-on: ubuntu-22.04 + needs: + - deploy + steps: + - name: Download books + uses: actions/download-artifact@v3 + with: + name: bookstodeploy + + - name: Extract the books + run: | + tar -xf bookstodeploy.tar + - name: Deploy to GH-pages uses: peaceiris/actions-gh-pages@v3 with: @@ -503,13 +612,11 @@ jobs: name: ci if: github.event_name == 'push' && success() needs: - - style + - formatcheck - check - clippy - checkexamples - testexamples - - checkmacros - - testmacros - tests - docs - mdbook diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 74b821d..0eb4cf6 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -18,11 +18,56 @@ jobs: - name: Checkout sources uses: actions/checkout@v3 - - name: Check that changelog updated + - name: Check which component is modified + uses: dorny/paths-filter@v2 + id: changes + with: + filters: | + rtic: + - 'rtic/**' + rtic-channel: + - 'rtic-channel/**' + rtic-time: + - 'rtic-time/**' + rtic-monotonics: + - 'rtic-monotonics/**' + + - name: Check that changelog updated (rtic) + if: steps.changes.outputs.rtic == 'true' + uses: dangoslen/changelog-enforcer@v3 + with: + changeLogPath: ./rtic/CHANGELOG.md + skipLabels: 'needs-changelog, skip-changelog' + missingUpdateErrorMessage: 'Please add a changelog entry in the rtic/CHANGELOG.md file.' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Check that changelog updated (rtic-channel) + if: steps.changes.outputs.rtic-channel == 'true' + uses: dangoslen/changelog-enforcer@v3 + with: + changeLogPath: ./rtic-channel/CHANGELOG.md + skipLabels: 'needs-changelog, skip-changelog' + missingUpdateErrorMessage: 'Please add a changelog entry in the rtic-channel/CHANGELOG.md file.' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Check that changelog updated (rtic-time) + if: steps.changes.outputs.rtic-time == 'true' + uses: dangoslen/changelog-enforcer@v3 + with: + changeLogPath: ./rtic-time/CHANGELOG.md + skipLabels: 'needs-changelog, skip-changelog' + missingUpdateErrorMessage: 'Please add a changelog entry in the rtic-time/CHANGELOG.md file.' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Check that changelog updated (rtic-monotonics) + if: steps.changes.outputs.rtic-monotonics == 'true' uses: dangoslen/changelog-enforcer@v3 with: - changeLogPath: CHANGELOG.md + changeLogPath: ./rtic-monotonics/CHANGELOG.md skipLabels: 'needs-changelog, skip-changelog' - missingUpdateErrorMessage: 'Please add a changelog entry in the CHANGELOG.md file.' + missingUpdateErrorMessage: 'Please add a changelog entry in the rtic-monotonics/CHANGELOG.md file.' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file diff --git a/.github/workflows/matrix-bot.yml b/.github/workflows/matrix-bot.yml index 6ef6787..bc985d9 100644 --- a/.github/workflows/matrix-bot.yml +++ b/.github/workflows/matrix-bot.yml @@ -5,7 +5,7 @@ on: jobs: new-pr: - if: github.event.action == 'opened' && github.repository == 'rtic-rs/cortex-m-rtic' + if: github.event.action == 'opened' && github.repository == 'rtic-rs/rtic' runs-on: ubuntu-latest continue-on-error: true steps: @@ -18,7 +18,7 @@ jobs: server: "matrix.org" merged-pr: - if: github.event.action == 'closed' && github.event.pull_request.merged == true && github.repository == 'rtic-rs/cortex-m-rtic' + if: github.event.action == 'closed' && github.event.pull_request.merged == true && github.repository == 'rtic-rs/rtic' runs-on: ubuntu-latest continue-on-error: true steps: @@ -31,7 +31,7 @@ jobs: server: "matrix.org" abandoned-pr: - if: github.event.action == 'closed' && github.event.pull_request.merged == false && github.repository == 'rtic-rs/cortex-m-rtic' + if: github.event.action == 'closed' && github.event.pull_request.merged == false && github.repository == 'rtic-rs/rtic' runs-on: ubuntu-latest continue-on-error: true steps: |
