Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
f049061
add macos 10.15 support
ZibanPirate Aug 21, 2025
eaa939d
Add GitHub Actions workflow for publishing draft releases on PRs
ZibanPirate Aug 21, 2025
8f3eaf9
Add preview label gate to PR workflow
ZibanPirate Aug 22, 2025
a7712ae
Set minimum macOS version to 10.15.0 and clean imports
ZibanPirate Aug 22, 2025
4e8a8bb
Add CLI entry point for debugging native macOS code
ZibanPirate Aug 22, 2025
acd7e1b
Add CLI interface for lib-swift native code testing
ZibanPirate Aug 22, 2025
6d1429e
Add native library build workflow for Mac and Windows
ZibanPirate Aug 23, 2025
eac58c8
made cargo deps CI friendly
ZibanPirate Aug 23, 2025
b879405
Install typeshare-cli for lib cli build
ZibanPirate Aug 23, 2025
5634159
Set prerelease package name for sysmon builds
ZibanPirate Aug 23, 2025
e9668c4
Fix CLI artifact upload path and extension detection
ZibanPirate Aug 23, 2025
8581f45
Limit builds and tests to sysmon package only
ZibanPirate Aug 23, 2025
fa40b00
Shorten CD workflow names
ZibanPirate Aug 23, 2025
86cdd95
Use pretty print format for debug output
ZibanPirate Aug 23, 2025
4ff68b9
Build Rust libs without default features and binaries
ZibanPirate Aug 23, 2025
2808cae
Rename workflow jobs for consistent ordering
ZibanPirate Aug 23, 2025
df6bd3a
Switch PR native libs upload to use gh-release action
ZibanPirate Aug 23, 2025
3fa7e7b
Update binary names to include target architecture
ZibanPirate Aug 23, 2025
6b8d9c6
Fix version variable in PR release workflow tag
ZibanPirate Aug 23, 2025
5050466
Update release file glob pattern for CLI artifacts
ZibanPirate Aug 23, 2025
3d5dfc3
Fix version extraction from Cargo.toml path
ZibanPirate Aug 23, 2025
1a3e595
Fix version extraction to use package.json instead
ZibanPirate Aug 23, 2025
e91d83b
Use ENV instead of outputs for version number
ZibanPirate Aug 23, 2025
8fe5ee3
Add debug output for version extraction step
ZibanPirate Aug 23, 2025
8a09cf5
use bash for version script
ZibanPirate Aug 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 163 additions & 0 deletions .github/workflows/cd-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# todo-zm: create a merge to main job that deletes old draft releases
# todo-zm: clean the release assets (only keep: dmg, setup.exe, .exe, .app)
name: "CD PR"
on:
pull_request:
branches:
- main
types: [opened, synchronize, reopened, labeled, unlabeled]

concurrency:
group: "cd-pr"
cancel-in-progress: true

jobs:
sysmon-build-upload:
if: contains(github.event.pull_request.labels.*.name, 'preview')
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include: # https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#standard-github-hosted-runners-for-public-repositories
- platform: macos-latest
arch: aarch64-apple-darwin
- platform: macos-13
arch: x86_64-apple-darwin
- platform: windows-latest
arch: x86_64-pc-windows-msvc
- platform: windows-11-arm
arch: aarch64-pc-windows-msvc
runs-on: ${{ matrix.platform }}
env:
SCCACHE_GHA_ENABLED: "true"
# todo-zm: remove conditional once https://github.com/Mozilla-Actions/sccache-action/issues/189 is resolved
RUSTC_WRAPPER: ${{ matrix.platform != 'windows-11-arm' && 'sccache' || '' }}
RUSTFLAGS: -Ctarget-feature=+crt-static
PR_NUMBER: ${{ github.event.pull_request.number }}

steps:
- uses: actions/checkout@v4

- if: startsWith(matrix.platform, 'macos')
# todo-zm: change to @3 once https://github.com/swift-actions/setup-swift/pull/710 is resolved
uses: swift-actions/setup-swift@next
with:
swift-version: "6.1"

- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: ${{ matrix.arch }}
# todo-zm: remove conditional ...(see above)
- if: matrix.platform != 'windows-11-arm'
uses: mozilla-actions/sccache-action@v0.0.9

- uses: actions/setup-node@v4
with:
node-version: "lts/*"

# todo-zm: move npm i to `before[Dev/Build]Command`
- run: npm i
working-directory: ./desktop/web

- run: cargo install typeshare-cli --git https://github.com/tomjw64/typeshare.git --branch allow-override-for-disallowed-types

- if: startsWith(matrix.platform, 'macos')
run: cargo install swift-bridge-cli

- name: Build Dependencies
run: cargo build --lib --release --no-default-features --workspace --exclude sysmon
env:
RUST_BACKTRACE: full

- run: npx -y @tauri-apps/cli icon ./assets/svg/logo.svg
working-directory: ./desktop

- name: Tauri Build ${{ matrix.arch }}
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
# todo-zm: use `assetNamePattern` and remove README.md version update workaround in `./scripts/bump-version.rs`
with:
projectPath: ./desktop
tagName: "v__VERSION__-pr-${{ env.PR_NUMBER }}"
releaseName: "v__VERSION__-pr-${{ env.PR_NUMBER }}"
releaseBody: "See the assets to download this version and install."
releaseDraft: true
prerelease: true
args: --target ${{ matrix.arch }} -- -p sysmon # --verbose

native-libs-build-upload:
if: contains(github.event.pull_request.labels.*.name, 'preview')
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: macos-latest
arch: aarch64-apple-darwin
crate: lib-swift
- platform: macos-13
arch: x86_64-apple-darwin
crate: lib-swift
- platform: windows-latest
arch: x86_64-pc-windows-msvc
crate: lib-cpp
- platform: windows-11-arm
arch: aarch64-pc-windows-msvc
crate: lib-cpp
runs-on: ${{ matrix.platform }}
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: ${{ matrix.platform != 'windows-11-arm' && 'sccache' || '' }}
RUSTFLAGS: -Ctarget-feature=+crt-static
PR_NUMBER: ${{ github.event.pull_request.number }}

steps:
- uses: actions/checkout@v4

- if: startsWith(matrix.platform, 'macos')
uses: swift-actions/setup-swift@next
with:
swift-version: "6.1"

- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: ${{ matrix.arch }}

- if: matrix.platform != 'windows-11-arm'
uses: mozilla-actions/sccache-action@v0.0.9

- run: cargo install typeshare-cli --git https://github.com/tomjw64/typeshare.git --branch allow-override-for-disallowed-types

- if: startsWith(matrix.platform, 'macos')
run: cargo install swift-bridge-cli

- name: Build ${{ matrix.crate }} binary
run: cargo build --release --bin ${{ matrix.crate }}-cli-${{ matrix.arch }} --target ${{ matrix.arch }}
working-directory: ./${{ matrix.crate }}
env:
RUST_BACKTRACE: full

- name: Extract version from package.json
shell: bash
run: |
VERSION=$(jq -r '.version' ./desktop/web/package.json)
echo "Extracted version: $VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV

- name: Upload ${{ matrix.crate }} binary to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}-pr-${{ env.PR_NUMBER }}"
draft: true
files: ./target/**/${{ matrix.crate }}-cli*
4 changes: 2 additions & 2 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: "publish a draft release"
name: "CD"
on:
push:
branches:
- main

concurrency:
group: "publish-draft-release"
group: "cd"
cancel-in-progress: true

jobs:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,13 @@ jobs:
# - name: lint todo-zm: bring this back
# run: cargo clippy -- -D warnings
- name: build
run: cargo build
run: cargo build -p sysmon
env:
RUST_BACKTRACE: full
- name: test
# todo-zm: fix swift build issue on old mac: dyld[34620]: Library not loaded: @rpath/libswiftCore.dylib
if: matrix.platform != 'macos-13'
run: cargo test
run: cargo test -p sysmon

web:
strategy:
Expand Down
Loading
Loading