refactor: Improve optimisation techniques #52
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" ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache Dependencies | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- name: Set up Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
- name: Install Clippy | |
run: rustup component add clippy | |
- name: Build and Run Clippy | |
run: | | |
cargo build --verbose | |
cargo clippy --all-targets --all-features -- -D warnings | |
- name: Run tests | |
run: cargo test --verbose --jobs 8 | |
- name: Build Artifact | |
run: cargo build --release --package krypto | |
- name: Create Artifact Directory | |
run: mkdir artifacts | |
- name: Move Artifact (UNIX) | |
if: runner.os != 'Windows' | |
run: mv target/release/krypto artifacts/ | |
- name: Move Artifact (Windows) | |
if: runner.os == 'Windows' | |
run: mv target/release/krypto.exe artifacts/ | |
- name: Upload Artifact (UNIX) | |
if: runner.os != 'Windows' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: krypto-${{ runner.os }} | |
path: artifacts/krypto | |
- name: Upload Artifact (Windows) | |
if: runner.os == 'Windows' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: krypto-${{ runner.os }} | |
path: artifacts/krypto.exe | |