Skip to content

fix profiler

fix profiler #763

Workflow file for this run

name: CI
on:
push:
branches:
- master
- ci
pull_request:
branches:
- "*"
jobs:
lint:
name: Rustfmt + Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt,clippy
- run: |
cargo fmt --all -- --check
cargo clippy
linux-test:
name: Test (Linux)
uses: ./.github/workflows/build-and-test.yml
with:
os: ubuntu-latest
additional-setup: |
sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
macos-test:
name: Test (macOS)
uses: ./.github/workflows/build-and-test.yml
with:
os: macos-latest
windows-test:
name: Test (Windows)
uses: ./.github/workflows/build-and-test.yml
with:
os: windows-latest
packaging:
name: rpm/deb
runs-on: ubuntu-latest
needs: linux-test
if: github.ref_name == 'master' || github.ref_name == 'ci'
strategy:
fail-fast: false
matrix:
arch: [x86_64, aarch64]
steps:
# Checkout the repository
- name: Checkout Code
uses: actions/checkout@v4
# Install Packaging Tools
- name: Install Packaging Tools
run: |
sudo apt-get update
if [ "${{ matrix.arch }}" != "$(uname -m)" ]; then
sudo apt-get install -y gcc-${{ matrix.arch }}-linux-gnu g++-aarch64-linux-gnu
rustup target add ${{ matrix.arch }}-unknown-linux-gnu
fi
cargo install cargo-generate-rpm cargo-deb
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: Build Cross (${{ matrix.arch }})
if: matrix.arch != runner.arch
run: cargo build --release --target=${{ matrix.arch }}-unknown-linux-gnu
- name: Build Native (${{ matrix.arch }})
if: matrix.arch == runner.arch
run: cargo build --release
- name: Build RPM (Cross)
if: matrix.arch != runner.arch
run: cargo generate-rpm --target=${{ matrix.arch }}-unknown-linux-gnu
- name: Build RPM
if: matrix.arch == runner.arch
run: cargo generate-rpm
- name: Build deb (Cross)
if: matrix.arch != runner.arch
run: cargo deb --target=${{ matrix.arch }}-unknown-linux-gnu
- name: Build deb
if: matrix.arch == runner.arch
run: cargo deb
- name: Upload RPM
uses: actions/upload-artifact@v4
if: runner.arch == matrix.arch
with:
name: notedeck-${{ matrix.arch }}.rpm
path: target/release/generate-rpm/notedeck.rpm
- name: Upload RPM (Cross)
uses: actions/upload-artifact@v4
if: runner.arch != matrix.arch
with:
name: notedeck-${{ matrix.arch }}.rpm
path: target/${{ matrix.arch }}-unknown-linux-gnu/generate-rpm/*.rpm
- name: Upload deb (Native)
uses: actions/upload-artifact@v4
if: runner.arch == matrix.arch
with:
name: notedeck-${{ matrix.arch }}.deb
path: target/release/debian/notedeck.deb
# Upload Debian Package (Cross)
- name: Upload deb (Cross)
uses: actions/upload-artifact@v4
if: runner.arch != matrix.arch
with:
name: notedeck-${{ matrix.arch }}.deb
path: target/${{ matrix.arch }}-unknown-linux-gnu/debian/*.deb
macos-dmg:
name: macOS dmg
runs-on: macos-latest
needs: macos-test
if: github.ref_name == 'master' || github.ref_name == 'ci'
env:
NOTEDECK_APPLE_RELEASE_CERT_ID: ${{ secrets.NOTEDECK_APPLE_RELEASE_CERT_ID }}
NOTEDECK_RELEASE_APPLE_ID: ${{ secrets.NOTEDECK_RELEASE_APPLE_ID }}
NOTEDECK_APPLE_APP_SPECIFIC_PW: ${{ secrets.NOTEDECK_APPLE_APP_SPECIFIC_PW }}
NOTEDECK_APPLE_TEAM_ID: ${{ secrets.NOTEDECK_APPLE_TEAM_ID }}
strategy:
fail-fast: false
matrix:
arch: [x86_64, aarch64]
steps:
# Checkout the repository
- name: Checkout Code
uses: actions/checkout@v4
- name: Install Required Tools
run: |
brew install create-dmg
cargo install cargo-bundle
rustup target add ${{ matrix.arch }}-apple-darwin
- name: Import apple codesign cert
uses: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets.CERTIFICATES_P12 }}
p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }}
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: Run macOS DMG Build Script
run: ARCH=${{ matrix.arch }} ./scripts/macos_build.sh
- name: Upload DMG Artifact
uses: actions/upload-artifact@v4
with:
name: notedeck-${{ matrix.arch }}.dmg
path: packages/notedeck-${{ matrix.arch }}.dmg
windows-installer:
name: Build Windows Installer (x86_64)
runs-on: windows-latest
needs: windows-test
if: github.ref_name == 'master' || github.ref_name == 'ci'
steps:
# Checkout the repository
- name: Checkout Code
uses: actions/checkout@v4
# Build cache
- name: Rust cache
uses: Swatinem/rust-cache@v2
# Build
- name: Build (Native Only)
run: cargo build --release
# Create packages directory
- name: Create packages directory
run: mkdir packages
# Install Inno Setup
- name: Install Inno Setup
run: choco install innosetup --no-progress --yes
# Build Installer
- name: Run Inno Setup Script
run: |
& "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" "scripts\windows-installer.iss"
# List outputs
- name: List Inno Script outputs
run: dir packages
# Upload the installer as an artifact
- name: Upload Installer
uses: actions/upload-artifact@v4
with:
name: DamusNotedeckInstaller.exe
path: packages\DamusNotedeckInstaller.exe