Skip to content

Update checkout action #254

Update checkout action

Update checkout action #254

Workflow file for this run

name: Rust build, test and clippy
on:
push:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache rust target files
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
save-always: true
- name: Install sass
run: sudo npm install -g sass
- name: Check
run: cargo check --verbose --all-targets --locked
- name: Run tests
run: cargo test --verbose
- name: Clippy
run: cargo clippy --verbose --no-deps --all-targets --locked
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache rust target files
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
save-always: true
- name: Install sass
run: sudo npm install -g sass
- name: Build
run: cargo build --bin=server --release --locked --verbose
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-output
path: |
target/production/server
public/
if-no-files-found: error
release:
runs-on: ubuntu-latest
needs: [validate, build]
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Download build artifact
uses: actions/download-artifact@v4
with:
name: build-output
- name: GH Release
uses: softprops/action-gh-release@v2
with:
files: |
target/production/server
public/
generate_release_notes: true