|
@ -0,0 +1,98 @@ |
|
|
|
|
|
# Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md |
|
|
|
|
|
# |
|
|
|
|
|
# While our "example" application has the platform-specific code, |
|
|
|
|
|
# for simplicity we are compiling and testing everything on the Ubuntu environment only. |
|
|
|
|
|
# For multi-OS testing see the `cross.yml` workflow. |
|
|
|
|
|
|
|
|
|
|
|
on: [push, pull_request] |
|
|
|
|
|
|
|
|
|
|
|
name: Continuous Integration |
|
|
|
|
|
|
|
|
|
|
|
jobs: |
|
|
|
|
|
check: |
|
|
|
|
|
name: Check |
|
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
steps: |
|
|
|
|
|
- name: Checkout sources |
|
|
|
|
|
uses: actions/checkout@v2 |
|
|
|
|
|
|
|
|
|
|
|
- name: Install stable toolchain |
|
|
|
|
|
uses: actions-rs/toolchain@v1 |
|
|
|
|
|
with: |
|
|
|
|
|
profile: minimal |
|
|
|
|
|
toolchain: stable |
|
|
|
|
|
override: true |
|
|
|
|
|
|
|
|
|
|
|
- name: Run cargo check |
|
|
|
|
|
uses: actions-rs/cargo@v1 |
|
|
|
|
|
with: |
|
|
|
|
|
command: check |
|
|
|
|
|
|
|
|
|
|
|
test: |
|
|
|
|
|
name: Test Suite |
|
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
steps: |
|
|
|
|
|
- name: Checkout sources |
|
|
|
|
|
uses: actions/checkout@v2 |
|
|
|
|
|
|
|
|
|
|
|
- name: Install stable toolchain |
|
|
|
|
|
uses: actions-rs/toolchain@v1 |
|
|
|
|
|
with: |
|
|
|
|
|
profile: minimal |
|
|
|
|
|
toolchain: stable |
|
|
|
|
|
override: true |
|
|
|
|
|
|
|
|
|
|
|
- name: Run cargo test |
|
|
|
|
|
uses: actions-rs/cargo@v1 |
|
|
|
|
|
with: |
|
|
|
|
|
command: test |
|
|
|
|
|
|
|
|
|
|
|
lints: |
|
|
|
|
|
name: Lints |
|
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
steps: |
|
|
|
|
|
- name: Checkout sources |
|
|
|
|
|
uses: actions/checkout@v2 |
|
|
|
|
|
|
|
|
|
|
|
- name: Install stable toolchain |
|
|
|
|
|
uses: actions-rs/toolchain@v1 |
|
|
|
|
|
with: |
|
|
|
|
|
profile: minimal |
|
|
|
|
|
toolchain: stable |
|
|
|
|
|
override: true |
|
|
|
|
|
components: rustfmt, clippy |
|
|
|
|
|
|
|
|
|
|
|
- name: Run cargo fmt |
|
|
|
|
|
uses: actions-rs/cargo@v1 |
|
|
|
|
|
with: |
|
|
|
|
|
command: fmt |
|
|
|
|
|
args: --all -- --check |
|
|
|
|
|
|
|
|
|
|
|
- name: Run cargo clippy |
|
|
|
|
|
uses: actions-rs/cargo@v1 |
|
|
|
|
|
with: |
|
|
|
|
|
command: clippy |
|
|
|
|
|
args: -- -D warnings |
|
|
|
|
|
|
|
|
|
|
|
build: |
|
|
|
|
|
name: Build Application |
|
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
needs: [check, test, lints] |
|
|
|
|
|
strategy: |
|
|
|
|
|
matrix: |
|
|
|
|
|
target: |
|
|
|
|
|
- x86_64-unknown-linux-gnu |
|
|
|
|
|
- aarch64-unknown-linux-gnu |
|
|
|
|
|
- powerpc64-unknown-linux-gnu |
|
|
|
|
|
steps: |
|
|
|
|
|
- uses: actions/checkout@v2 |
|
|
|
|
|
- uses: actions-rs/toolchain@v1 |
|
|
|
|
|
with: |
|
|
|
|
|
toolchain: stable |
|
|
|
|
|
target: ${{ matrix.target }} |
|
|
|
|
|
override: true |
|
|
|
|
|
- uses: actions-rs/cargo@v1 |
|
|
|
|
|
with: |
|
|
|
|
|
use-cross: true |
|
|
|
|
|
command: build |
|
|
|
|
|
args: --release --target=${{ matrix.target }} |