70 lines
1.8 KiB
YAML
70 lines
1.8 KiB
YAML
name: Cargo
|
|
run-name: ${{ gitea.actor }} is verifying cargo build and tests
|
|
on: [push]
|
|
|
|
jobs:
|
|
build:
|
|
env:
|
|
RUNNER_TOOL_CACHE: /toolcache
|
|
runs-on: rust-latest
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v3
|
|
with:
|
|
go-version: '1.20'
|
|
|
|
- uses: actions/go-hashfiles@v0.0.1
|
|
id: get-hash
|
|
with:
|
|
patterns: |-
|
|
**/Cargo.toml
|
|
|
|
- name: Echo hash
|
|
run: echo ${{ steps.get-hash.outputs.hash }}
|
|
- name: Cargo target cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.cargo
|
|
target
|
|
key: ${{ runner.os }}-cargo-target-${{ setps.get-hash.outputs.hash }}-${{ setps.get-hash.outputs.hash }}
|
|
restore-keys: |
|
|
${{ runner.os }}-cargo-target-${{ setps.get-hash.outputs.hash }}
|
|
${{ runner.os }}-cargo-target
|
|
- name: Build project
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
args: --release
|
|
|
|
check:
|
|
runs-on: rust-latest
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Run clippy
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: clippy
|
|
args: -- -Dwarnings -Wclippy::correctness -Wclippy::complexity -Wclippy::perf -Aclippy::missing_errors_doc -Aclippy::missing_panics_doc
|
|
|
|
test:
|
|
runs-on: rust-latest
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Run unit tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --lib --bins
|
|
|
|
- name: Run integration tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --tests '*'
|