Rust #620
Workflow file for this run
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: Rust | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
merge_group: | |
branches: [ "main" ] | |
env: | |
CARGO_TERM_COLOR: always | |
SCCACHE_GHA_ENABLED: "true" | |
RUSTC_WRAPPER: "sccache" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
# The prefix cache key, this can be changed to start a new cache manually. | |
# default: "v0-rust" | |
prefix-key: v0 | |
# Cache only the cargo registry | |
cache-targets: false | |
- uses: mozilla-actions/sccache-action@v0.0.3 | |
- name: Install Protoc | |
run: | | |
PROTOC_VERSION=3.20.1 | |
PROTOC_ARCH=linux-x86_64 | |
PROTOC_ZIP=protoc-$PROTOC_VERSION-$PROTOC_ARCH.zip | |
curl --retry 3 --retry-max-time 90 -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -OL https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/$PROTOC_ZIP | |
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc | |
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*' | |
rm -f $PROTOC_ZIP | |
echo "PROTOC=/usr/local/bin/protoc" >> $GITHUB_ENV | |
echo "PROTOC_INCLUDE=/usr/local/include" >> $GITHUB_ENV | |
- name: Build | |
run: make build | |
check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
# The prefix cache key, this can be changed to start a new cache manually. | |
# default: "v0-rust" | |
prefix-key: v0 | |
# Cache only the cargo registry | |
cache-targets: false | |
- uses: mozilla-actions/sccache-action@v0.0.3 | |
- name: Install Protoc | |
run: | | |
PROTOC_VERSION=3.20.1 | |
PROTOC_ARCH=linux-x86_64 | |
PROTOC_ZIP=protoc-$PROTOC_VERSION-$PROTOC_ARCH.zip | |
curl --retry 3 --retry-max-time 90 -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -OL https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/$PROTOC_ZIP | |
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc | |
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*' | |
rm -f $PROTOC_ZIP | |
echo "PROTOC=/usr/local/bin/protoc" >> $GITHUB_ENV | |
echo "PROTOC_INCLUDE=/usr/local/include" >> $GITHUB_ENV | |
- name: Check fmt | |
run: make check-fmt | |
- name: Check clippy | |
run: make check-clippy | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
# The prefix cache key, this can be changed to start a new cache manually. | |
# default: "v0-rust" | |
prefix-key: v0 | |
# Cache only the cargo registry | |
cache-targets: false | |
- uses: mozilla-actions/sccache-action@v0.0.3 | |
- name: Install Protoc | |
run: | | |
PROTOC_VERSION=3.20.1 | |
PROTOC_ARCH=linux-x86_64 | |
PROTOC_ZIP=protoc-$PROTOC_VERSION-$PROTOC_ARCH.zip | |
curl --retry 3 --retry-max-time 90 -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -OL https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/$PROTOC_ZIP | |
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc | |
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*' | |
rm -f $PROTOC_ZIP | |
echo "PROTOC=/usr/local/bin/protoc" >> $GITHUB_ENV | |
echo "PROTOC_INCLUDE=/usr/local/include" >> $GITHUB_ENV | |
- name: Run tests | |
run: make test | |
book: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup mdBook | |
uses: peaceiris/actions-mdbook@v1 | |
with: | |
mdbook-version: '0.4.10' | |
# mdbook-version: 'latest' | |
- run: make book | |
- name: Deploy | |
uses: peaceiris/actions-gh-pages@v3 | |
if: ${{ github.ref == 'refs/heads/main' }} | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./book |