Skip to content

fix(birdie): breadcrumb navigation selects files #1185

fix(birdie): breadcrumb navigation selects files

fix(birdie): breadcrumb navigation selects files #1185

Workflow file for this run

name: Rust
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
types: ["labeled", "opened", "reopened", "synchronize"]
release:
types: ["published"]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
frontend-checks:
if: ${{ contains(github.event.pull_request.labels.*.name, 'ci ready') || (github.event_name == 'release' || github.event_name == 'workflow_dispatch') || github.event_name == 'push' }}
strategy:
matrix:
app: ["core/ui", "friendshipper", "birdie"]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Check out
uses: actions/checkout@v4
- name: Check if files have changed
uses: tj-actions/changed-files@v42
id: changes
with:
files: |
${{ matrix.app }}/src/**/*
- name: Package "core-ui" if needed
if: ${{ matrix.app != 'core/ui' && (steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app))) }}
run: |
cd core/ui
yarn
yarn package
- name: Lint ${{ matrix.app }}
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
cd ${{ matrix.app }}
yarn
yarn lint
build-linux:
if: ${{ contains(github.event.pull_request.labels.*.name, 'ci ready') || (github.event_name == 'release' || github.event_name == 'workflow_dispatch') || github.event_name == 'push' }}
runs-on:
group: ethos-linux
strategy:
matrix:
app: [friendshipper, birdie]
permissions:
contents: write
steps:
- name: Check out
uses: actions/checkout@v4
- name: Check if files have changed
uses: tj-actions/changed-files@v42
id: changes
with:
files: |
${{ matrix.app }}/**/*
core/**/*
Cargo.lock
- name: Install ubuntu dependencies
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.0-dev \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
- name: set up rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: set up Node
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "yarn"
cache-dependency-path: "${{ matrix.app }}/yarn.lock"
- name: Check format and linting
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
mkdir -p ${{ matrix.app }}/build
cargo fmt -p ethos-core -- --check
cargo fmt -p ${{ matrix.app }} -- --check
cargo clippy --all-features -p ethos-core -- -D warnings
cargo clippy --all-features -p ${{ matrix.app }} -- -D warnings
- name: Run unit tests
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
cargo test --verbose --release -p ethos-core
cargo test --verbose --release --bin ${{ matrix.app }}
- name: Build core ui
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
cd core/ui
yarn
yarn package
- name: Build
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
env:
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
run: |
cd ${{ matrix.app }}
yarn
yarn tauri:build
- name: Rename
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
ls -ltr target/release
mv target/release/${{ matrix.app }} ${{ matrix.app }}-linux-amd64
- name: Release
uses: softprops/action-gh-release@v1
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
with:
files: |
${{ matrix.app }}-linux-amd64
build-windows:
if: ${{ contains(github.event.pull_request.labels.*.name, 'ci ready') || (github.event_name == 'release' || github.event_name == 'workflow_dispatch') || github.event_name == 'push' }}
runs-on:
group: ethos-windows
strategy:
matrix:
app: [friendshipper, birdie]
permissions:
contents: write
steps:
- name: Check out
uses: actions/checkout@v3
- name: Check if files have changed
uses: tj-actions/changed-files@v42
id: changes
with:
files: |
${{ matrix.app }}/**/*
core/**/*
Cargo.lock
- name: set up rust toolchain
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: set up Node
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "yarn"
cache-dependency-path: "${{ matrix.app }}/yarn.lock"
- name: Check format and linting
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
mkdir -p ${{ matrix.app }}/build
cargo fmt -p ethos-core -- --check
cargo fmt -p ${{ matrix.app }} -- --check
cargo clippy --all-features -p ethos-core -- -D warnings
cargo clippy --all-features -p ${{ matrix.app }} -- -D warnings
- name: Run unit tests
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
cargo test --verbose --release -p ethos-core
cargo test --verbose --release --bin ${{ matrix.app }}
- name: Build core ui
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
cd core/ui
yarn
yarn package
- name: Build
if: ${{ steps.changes.outputs.any_changed == 'true' || startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
env:
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
run: |
cd ${{ matrix.app }}
yarn
yarn tauri:build
- name: Rename
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
run: |
dir target/release
mv target/release/${{ matrix.app }}.exe ${{ matrix.app }}.exe
mv target/release/bundle/msi/*.msi .
- name: Release
uses: softprops/action-gh-release@v1
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }}
env:
REF: ${{ github.ref_name }}
with:
files: |
${{ matrix.app }}.exe