From b9acaff6c2b835c97936dbe2b1176dcad2393271 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 10 Dec 2021 10:23:16 +0100 Subject: [PATCH] add automation files --- .github/bors.toml | 2 ++ .github/workflows/changelog.yml | 20 +++++++++++ .github/workflows/ci.yml | 64 +++++++++++++++++++++++++++++++++ automation/Dockerfile | 11 ++++++ automation/Jenkinsfile | 39 ++++++++++++++++++++ 5 files changed, 136 insertions(+) create mode 100644 .github/bors.toml create mode 100644 .github/workflows/changelog.yml create mode 100644 .github/workflows/ci.yml create mode 100644 automation/Dockerfile create mode 100644 automation/Jenkinsfile diff --git a/.github/bors.toml b/.github/bors.toml new file mode 100644 index 0000000..1779788 --- /dev/null +++ b/.github/bors.toml @@ -0,0 +1,2 @@ +status = ["ci"] +delete_merged_branches = true diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml new file mode 100644 index 0000000..dbba297 --- /dev/null +++ b/.github/workflows/changelog.yml @@ -0,0 +1,20 @@ +on: + pull_request_target: + +name: Changelog check + +jobs: + changelog: + name: Changelog check + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v2 + + - name: Changelog updated + uses: Zomzog/changelog-checker@v1.2.0 + with: + fileName: CHANGELOG.md + noChangelogLabel: no changelog + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..63cf53c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,64 @@ +on: [push] + +name: build + +jobs: + check: + name: Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: thumbv7em-none-eabihf + override: true + - uses: actions-rs/cargo@v1 + with: + use-cross: true + command: check + args: --target thumbv7em-none-eabihf + + fmt: + name: Rustfmt + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + - run: rustup component add rustfmt + - uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + + clippy: + name: Clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: thumbv7em-none-eabihf + override: true + - run: rustup component add clippy + - uses: actions-rs/cargo@v1 + with: + use-cross: true + command: clippy + args: --target thumbv7em-none-eabihf -- -D warnings + + ci: + if: ${{ success() }} + # all new jobs must be added to this list + needs: [check, fmt, clippy] + runs-on: ubuntu-latest + steps: + - name: CI succeeded + run: exit 0 \ No newline at end of file diff --git a/automation/Dockerfile b/automation/Dockerfile new file mode 100644 index 0000000..b9a76c6 --- /dev/null +++ b/automation/Dockerfile @@ -0,0 +1,11 @@ +# Run the following commands from root directory to build and run locally +# docker build -f automation/Dockerfile -t . +# docker run -it +FROM rust:latest +RUN apt-get update +RUN apt-get --yes upgrade +# tzdata is a dependency, won't install otherwise +ARG DEBIAN_FRONTEND=noninteractive + +RUN rustup target add thumbv7em-none-eabihf && \ + rustup component add rustfmt clippy diff --git a/automation/Jenkinsfile b/automation/Jenkinsfile new file mode 100644 index 0000000..925c94e --- /dev/null +++ b/automation/Jenkinsfile @@ -0,0 +1,39 @@ +pipeline { + agent any + + stages { + stage('Clippy') { + agent { + dockerfile { + dir 'automation' + reuseNode true + } + } + steps { + sh 'cargo clippy' + } + } + stage('Rustfmt') { + agent { + dockerfile { + dir 'automation' + reuseNode true + } + } + steps { + sh 'cargo fmt' + } + } + stage('Check') { + agent { + dockerfile { + dir 'automation' + reuseNode true + } + } + steps { + sh 'cargo check --target thumbv7em-none-eabihf' + } + } + } +} \ No newline at end of file