WIP: Input device #904
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
name: Build | |
on: | |
push: | |
branches: ["main"] | |
paths: ["examples/**", "rmk/**", "rmk-macro/**"] | |
pull_request: | |
branches: ["main"] | |
paths: ["examples/**", "rmk/**", "rmk-macro/**"] | |
# Cancel any currently running workflows from the same PR, branch, or | |
# tag when a new workflow is triggered. | |
# | |
# https://stackoverflow.com/a/66336834 | |
concurrency: | |
cancel-in-progress: true | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build_rmk: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Build rmk | |
working-directory: ./rmk | |
run: cargo build --release | |
build_rp2040: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv6m-none-eabi | |
- name: Build rp2040 | |
working-directory: ./examples/use_rust/rp2040 | |
run: cargo make uf2 --release | |
build_rp2040_with_config: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv6m-none-eabi | |
- name: Build rp2040 with config | |
working-directory: ./examples/use_config/rp2040 | |
run: cargo make uf2 --release | |
build_stm32h7: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabihf | |
- name: Build stm32h7 | |
working-directory: ./examples/use_rust/stm32h7 | |
run: cargo make uf2 --release | |
build_stm32h7_with_config: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabihf | |
- name: Build stm32h7 with config | |
working-directory: ./examples/use_config/stm32h7 | |
run: cargo make uf2 --release | |
build_stm32f1: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabi | |
- name: Build stm32f1 | |
working-directory: ./examples/use_rust/stm32f1 | |
run: cargo make uf2 --release | |
build_stm32f1_with_config: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabi | |
- name: Build stm32f1 with config | |
working-directory: ./examples/use_config/stm32f1 | |
run: cargo make uf2 --release | |
build_stm32f4: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabihf | |
- name: Build stm32f4 | |
working-directory: ./examples/use_rust/stm32f4 | |
run: cargo make uf2 --release | |
build_stm32f4_with_config: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabihf | |
- name: Build stm32f4 with config | |
working-directory: ./examples/use_config/stm32f4 | |
run: cargo make uf2 --release | |
build_nrf52840_ble: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabihf | |
- name: Build nrf52840_ble | |
working-directory: ./examples/use_rust/nrf52840_ble | |
run: cargo make uf2 --release | |
build_nrf52832_ble: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabihf | |
- name: Build nrf52832_ble | |
working-directory: ./examples/use_rust/nrf52832_ble | |
run: cargo make uf2 --release | |
build_nrf52832_ble_with_config: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabihf | |
- name: Build nrf52832_ble with config | |
working-directory: ./examples/use_config/nrf52832_ble | |
run: cargo make uf2 --release | |
build_rp2040_split: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv6m-none-eabi | |
- name: Build rp2040 split | |
working-directory: ./examples/use_rust/rp2040_split | |
run: cargo make uf2 --release | |
build_rp2040_split_with_config: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv6m-none-eabi | |
- name: Build rp2040 split with config | |
working-directory: ./examples/use_config/rp2040_split | |
run: cargo make uf2 --release | |
build_nrf52840: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabihf | |
- name: Build nrf52840 split | |
working-directory: ./examples/use_rust/nrf52840_ble_split | |
run: cargo make uf2 --release | |
build_nrf52840_split_with_config: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: cargo-bins/cargo-binstall@main | |
- name: Install cargo-make | |
run: cargo binstall cargo-make -y | |
- uses: actions/checkout@v3 | |
- name: Install target | |
run: rustup target add thumbv7em-none-eabihf | |
- name: Build nrf52840 split with config | |
working-directory: ./examples/use_config/nrf52840_ble_split | |
run: cargo make uf2 --release | |
binary-size: | |
# Copied from sequential-storage: https://github.com/tweedegolf/sequential-storage/blob/master/.github/workflows/ci.yaml | |
runs-on: ubuntu-latest | |
permissions: | |
actions: read | |
pull-requests: write | |
steps: | |
- uses: actions/cache@v3 | |
id: cache-cargo | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
./example/target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- run: rustup target add thumbv7em-none-eabihf | |
- run: rustup component add rust-src llvm-tools | |
- if: steps.cache-cargo.outputs.cache-hit != 'true' | |
run: cargo install cargo-binutils | |
- name: Check out the repo with the full git history | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: '0' | |
- name: Build new binary | |
working-directory: ./examples/use_config/nrf52840_ble | |
run: | | |
echo 'RESULT<<EOF' >> $GITHUB_OUTPUT | |
cargo build --release >> $GITHUB_OUTPUT | |
echo 'EOF' >> $GITHUB_OUTPUT | |
id: new-size | |
- name: Save binary | |
run: | | |
mv ./examples/use_config/nrf52840_ble/target/thumbv7em-none-eabihf/release/rmk-nrf52840 ./examples/use_config/nrf52840_ble/target/thumbv7em-none-eabihf/release/original.elf | |
- name: If it's a PR checkout the base commit | |
if: ${{ github.event.pull_request }} | |
run: git checkout ${{ github.event.pull_request.base.sha }} | |
- name: Rebuild with the base commit | |
if: ${{ github.event.pull_request }} | |
working-directory: ./examples/use_config/nrf52840_ble | |
run: cargo build --release | |
- name: Run Bloaty to compare both output files | |
if: ${{ github.event.pull_request }} | |
id: bloaty-comparison | |
uses: carlosperate/bloaty-action@v1 | |
with: | |
bloaty-args: ./examples/use_config/nrf52840_ble/target/thumbv7em-none-eabihf/release/original.elf -- ./examples/use_config/nrf52840_ble/target/thumbv7em-none-eabihf/release/rmk-nrf52840 | |
output-to-summary: true | |
- name: Add a PR comment with the bloaty diff | |
if: ${{ github.event.pull_request }} | |
continue-on-error: true | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body: `## PR build size\n \`\`\`\n${{ join(steps.new-size.outputs.*, '\n') }}\n\`\`\`\n ### Diff\n\`\`\`\n${{ steps.bloaty-comparison.outputs.bloaty-output-encoded }}\`\`\`\n` | |
}) |