Add: Frontend project format and lint checks #127
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: Test all targets | |
on: [push, pull_request] | |
permissions: | |
contents: write | |
jobs: | |
quick-tests: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Install build dependencies | |
uses: awalsh128/cache-apt-pkgs-action@v1 | |
with: | |
packages: | | |
curl \ | |
git | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set directory to safe for git | |
# Note: Required by vergen (https://crates.io/crates/vergen) | |
run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
- name: Install build dependencies - Rustup | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable -y | |
echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
- name: Install build dependencies - Bun | |
uses: oven-sh/setup-bun@v2 | |
with: | |
bun-version: 1.1.22 | |
- name: Check style | |
run: cargo fmt --check | |
- name: Check clippy | |
run: cargo clippy --all-features | |
- name: Build | |
run: cargo build --verbose | |
build-frontend: | |
runs-on: ubuntu-22.04 | |
defaults: | |
run: | |
working-directory: ping-viewer-next-frontend | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Bun | |
uses: oven-sh/setup-bun@v2 | |
with: | |
bun-version: 1.1.22 | |
- name: Install dependencies | |
run: bun install --frozen-lockfile | |
- name: Format check | |
run: bunx biome format | |
- name: Lint check | |
run: bunx biome lint | |
- name: Build project | |
run: bun run build | |
- name: Upload dist folder | |
uses: actions/[email protected] | |
with: | |
name: dist | |
path: ping-viewer-next-frontend/dist | |
build: | |
needs: [quick-tests, build-frontend] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: macos-14 | |
TARGET: aarch64-apple-darwin | |
- os: macos-14 | |
TARGET: x86_64-apple-darwin | |
- os: ubuntu-22.04 | |
TARGET: aarch64-unknown-linux-musl | |
- os: ubuntu-22.04 | |
TARGET: armv7-unknown-linux-musleabihf | |
- os: ubuntu-22.04 | |
TARGET: x86_64-unknown-linux-gnu | |
- os: windows-2022 | |
TARGET: x86_64-pc-windows-msvc | |
EXTENSION: .exe | |
steps: | |
- name: Building ${{ matrix.TARGET }} | |
run: echo "${{ matrix.TARGET }}" | |
- uses: actions/checkout@master | |
- name: Download frontend build | |
uses: actions/[email protected] | |
with: | |
name: dist | |
path: ./ping-viewer-next-frontend/dist | |
- name: Build | |
uses: houseabsolute/[email protected] | |
with: | |
target: ${{ matrix.TARGET }} | |
args: "--release --features embed-frontend" | |
- name: Rename | |
run: cp target/${{ matrix.TARGET }}/release/${{ github.event.repository.name }}${{ matrix.EXTENSION }} ${{ github.event.repository.name }}-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | |
- uses: actions/upload-artifact@master | |
with: | |
name: ${{ github.event.repository.name }}-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | |
path: ${{ github.event.repository.name }}-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | |
- uses: svenstaro/upload-release-action@v2 | |
name: Upload binaries to release | |
if: ${{ github.event_name == 'push' }} | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ github.event.repository.name }}-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | |
asset_name: ${{ github.event.repository.name }}-${{ matrix.TARGET }}${{ matrix.EXTENSION }} | |
tag: ${{ github.ref }} | |
prerelease: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
overwrite: true |