docs(misc): add badges to root readme #26
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" ] | |
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 == '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 == '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/**/* | |
- 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: 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)) }} | |
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 | |
- name: Prepare files for s3 | |
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }} | |
env: | |
REF: ${{ github.ref_name }} | |
run: | | |
mkdir ${REF##*-} | |
mv ${{ matrix.app }}-linux-amd64 ${REF##*-}/${{ matrix.app }}-linux-amd64 | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }} | |
with: | |
aws-access-key-id: ${{ secrets.S3_UPLOAD_ACCESS_KEY }} | |
aws-secret-access-key: ${{ secrets.S3_UPLOAD_SECRET_KEY }} | |
aws-region: us-west-2 | |
- name: Upload to s3 | |
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }} | |
env: | |
REF: ${{ github.ref_name }} | |
run: aws s3 sync ${REF##*-} s3://${{ secrets.S3_BUCKET_NAME }}/tauri-${{ matrix.app }}/${REF##*-} | |
build-windows: | |
if: ${{ contains(github.event.pull_request.labels.*.name, 'ci ready') || (github.event_name == 'release' || 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 }}/**/* | |
ethos-core/**/* | |
- 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: 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)) }} | |
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 | |
- 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 | |
- name: Prepare files for s3 | |
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }} | |
env: | |
REF: ${{ github.ref_name }} | |
run: | | |
ls -l target/release | |
$tag = $($env:REF -split "-")[-1] | |
mkdir $tag | |
mv ${{ matrix.app }}.exe $tag/${{ matrix.app }}.exe | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }} | |
with: | |
aws-access-key-id: ${{ secrets.S3_UPLOAD_ACCESS_KEY }} | |
aws-secret-access-key: ${{ secrets.S3_UPLOAD_SECRET_KEY }} | |
aws-region: us-west-2 | |
- name: Upload to s3 | |
if: ${{ startsWith(github.ref, format('refs/tags/{0}', matrix.app)) }} | |
env: | |
REF: ${{ github.ref_name }} | |
run: | | |
$tag = $($env:REF -split "-")[-1] | |
aws s3 sync $tag s3://${{ secrets.S3_BUCKET_NAME }}/tauri-${{ matrix.app }}/$tag |