Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
bebcf7f
chore: tests
CLARATION Nov 2, 2025
4d9ac91
tests
CLARATION Nov 2, 2025
d9a79ce
fix?
CLARATION Nov 2, 2025
cee990e
linux deps
CLARATION Nov 2, 2025
252e70e
test build
CLARATION Nov 3, 2025
77437a5
add some packaging stuff for macos
CLARATION Nov 3, 2025
d40a2cf
very shit makefile
CLARATION Nov 3, 2025
8ea06e3
test
CLARATION Nov 4, 2025
64562d2
more alerts
CLARATION Nov 7, 2025
ffe7579
Update main.rs
CLARATION Nov 10, 2025
0eeca91
disallow drag on linux
CLARATION Nov 10, 2025
a6e6c41
picky
CLARATION Nov 10, 2025
17a7c24
cli
CLARATION Nov 11, 2025
8a2a831
Update mod.rs
CLARATION Nov 11, 2025
591f10e
refactor
CLARATION Nov 13, 2025
04f5616
reorganize and add some scaffolding for the install button
CLARATION Nov 13, 2025
c22d8ca
the basics for now
CLARATION Nov 14, 2025
2ce499e
Update frame.rs
CLARATION Nov 14, 2025
4d77885
Update frame.rs
CLARATION Nov 14, 2025
edc3d60
certs
CLARATION Nov 15, 2025
671e9bd
Merge branch 'actions' of https://github.com/khcrysalis/PlumeImpactor…
CLARATION Nov 15, 2025
18d3378
Update frame.rs
CLARATION Nov 15, 2025
644cad2
WHY WERE YOU HERE
CLARATION Nov 15, 2025
7fb3313
some fixes
CLARATION Nov 15, 2025
2d54c1c
more actions
CLARATION Nov 15, 2025
7057d5c
remove this stuff
CLARATION Nov 15, 2025
16cadc4
this too
CLARATION Nov 15, 2025
b87523d
asd
CLARATION Nov 15, 2025
31826e6
Update build.yml
CLARATION Nov 15, 2025
89ce3fb
Update build.yml
CLARATION Nov 15, 2025
9c862e3
fix again
CLARATION Nov 15, 2025
27b1688
please
CLARATION Nov 15, 2025
6255cbc
Update build.yml
CLARATION Nov 15, 2025
b066d85
install
CLARATION Nov 16, 2025
926c8e1
lkibux ui
CLARATION Nov 16, 2025
e99e85e
Update mod.rs
CLARATION Nov 16, 2025
6360a8b
Update Windows build command and upload artifacts
CLARATION Nov 16, 2025
c420518
style changes + config dir
CLARATION Nov 16, 2025
ced2ee1
for now disallow multiple teams
CLARATION Nov 16, 2025
994f40f
remove some useless stuff
CLARATION Nov 16, 2025
135c27a
basic modifications
CLARATION Nov 17, 2025
865847a
add this back
CLARATION Nov 17, 2025
9ba021b
Update main.rs
CLARATION Nov 17, 2025
6f2b307
temporary fix for LC
CLARATION Nov 17, 2025
52727a7
notoar
CLARATION Nov 18, 2025
fb1d50c
Update build.yml
CLARATION Nov 18, 2025
01d5c02
lets try to debug this issue
CLARATION Nov 18, 2025
9bb4ed4
Revert "lets try to debug this issue"
CLARATION Nov 18, 2025
4871124
a
CLARATION Nov 18, 2025
93d76b1
Update build.yml
CLARATION Nov 18, 2025
4daa099
Update build.yml
CLARATION Nov 18, 2025
bf96c5b
Update build.yml
CLARATION Nov 18, 2025
9af8a1b
seperate workflow?
CLARATION Nov 18, 2025
ebda811
oh my god??
CLARATION Nov 18, 2025
95c4483
improve actions
CLARATION Nov 18, 2025
c31bf5c
fix ts
CLARATION Nov 18, 2025
f4977fe
FIX TS AGAIN
CLARATION Nov 18, 2025
c875093
FIX TS AGAINN
CLARATION Nov 18, 2025
32edb21
bryh
CLARATION Nov 18, 2025
b120994
HOPEFULLYLYY
CLARATION Nov 18, 2025
0e7a3cf
chmod ts
CLARATION Nov 18, 2025
57a9c57
last times the charm!
CLARATION Nov 18, 2025
3b6ea9d
refactor certificate
CLARATION Nov 19, 2025
207b54d
fix name changing + readd back bundle mods for plumesign
CLARATION Nov 19, 2025
08e6637
stuggd
CLARATION Nov 20, 2025
8af688d
todos
CLARATION Nov 20, 2025
6e3d268
improve ui code
CLARATION Nov 20, 2025
2f469dd
add p12 gen support
CLARATION Nov 20, 2025
38cd247
add some keeps
CLARATION Nov 20, 2025
c96ae39
remove some stuff for now
CLARATION Nov 20, 2025
e40ab9c
delete some cache after deselect
CLARATION Nov 20, 2025
5738070
comment out more stuff
CLARATION Nov 20, 2025
d71a590
add simple icon for mac
CLARATION Nov 20, 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
5 changes: 3 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
root = true

[*]
indent_style = tab
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
Expand All @@ -10,4 +10,5 @@ insert_final_newline = true

[*.{yml,yaml}]
indent_style = space
indent_size = 2
indent_size = 2

223 changes: 199 additions & 24 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,51 +1,226 @@
name: "Build"
name: "Build & Bundle"
on:
push:
branches:
- main

workflow_dispatch:

release:
types: [published]
env:
BINARY_NAME: plumeimpactor
BUNDLE_NAME: Impactor

jobs:
build:
strategy:
fail-fast: false
matrix:
platform:
- ubuntu-22.04
- windows-latest
- macos-latest

runs-on: ${{ matrix.platform }}
build-linux:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ matrix.platform }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
key: linux-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: linux-cargo-

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable

- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install libgtk-3-dev libpng-dev libjpeg-dev libgl1-mesa-dev libglu1-mesa-dev libxkbcommon-dev libexpat1-dev libtiff-dev

- name: Build Dependencies
run: |
cargo install patch-crate
cargo fetch --locked || true
cargo patch-crate --force
cargo install cargo-bundle
mkdir -p build/out

- name: Build & Bundle (Linux)
run: |
cargo bundle --bin ${{ env.BINARY_NAME }} --package ${{ env.BINARY_NAME }} --release --format appimage
cp -R target/release/bundle/appimage/*.AppImage build/out/

- name: Upload Bundles
uses: actions/upload-artifact@v4
with:
targets: ${{ (matrix.platform == 'macos-latest') && 'aarch64-apple-darwin' || '' }}
name: ${{ env.BINARY_NAME }}-linux
path: build/out/*

build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: windows-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: windows-cargo-

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable

- name: Setup Windows dependencies
if: runner.os == 'Windows'
run: choco install strawberryperl make --no-progress

- name: Setup MSVC environment
if: runner.os == 'Windows'
- name: Setup Windows MSVC environment
uses: ilammy/msvc-dev-cmd@v1

- name: Build
run: cargo build --bin plumeimpactor --release
- name: Build Dependencies
run: |
cargo install patch-crate
cargo fetch --locked || true
cargo patch-crate --force
mkdir -p build/out

- name: Build & Bundle (Windows)
run: |
cargo build --bin ${{ env.BINARY_NAME }} --release
cp target/release/${{ env.BINARY_NAME }}.exe build/out

- name: Upload Bundles
uses: actions/upload-artifact@v4
with:
name: ${{ env.BINARY_NAME }}-windows
path: build/out/*

build-macos-arm:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: macos-arm-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: macos-arm-cargo-

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-darwin

- name: Build Dependencies
run: |
cargo install patch-crate
cargo fetch --locked || true
cargo patch-crate --force
mkdir -p build/out

- name: Build (macOS ARM)
run: |
cargo build --bin ${{ env.BINARY_NAME }} --release
strip target/release/${{ env.BINARY_NAME }}
cp target/release/${{ env.BINARY_NAME }} build/out/${{ env.BINARY_NAME }}-arm

- name: Upload ARM Slice
uses: actions/upload-artifact@v4
with:
name: ${{ env.BINARY_NAME }}-macos-slice-arm
path: build/out/${{ env.BINARY_NAME }}-arm

build-macos-intel:
runs-on: macos-15-intel
steps:
- uses: actions/checkout@v4
- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: macos-intel-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: macos-intel-cargo-

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable

- name: Build Dependencies
run: |
cargo install patch-crate
cargo fetch --locked || true
cargo patch-crate --force
mkdir -p build/out

- name: Build (macOS Intel)
run: |
cargo build --bin ${{ env.BINARY_NAME }} --release
strip target/release/${{ env.BINARY_NAME }}
cp target/release/${{ env.BINARY_NAME }} build/out/${{ env.BINARY_NAME }}-intel

- name: Upload Intel Slice
uses: actions/upload-artifact@v4
with:
name: ${{ env.BINARY_NAME }}-macos-slice-intel
path: build/out/${{ env.BINARY_NAME }}-intel

build-macos-universal:
runs-on: macos-latest
needs: [build-macos-arm, build-macos-intel]
steps:
- uses: actions/checkout@v4

- name: Get ARM Slice
uses: actions/download-artifact@v4
with:
name: ${{ env.BINARY_NAME }}-macos-slice-arm
path: build/slices

- name: Get Intel Slice
uses: actions/download-artifact@v4
with:
name: ${{ env.BINARY_NAME }}-macos-slice-intel
path: build/slices

- name: Setup Certificates
uses: apple-actions/import-codesign-certs@v5
with:
p12-file-base64: ${{ secrets.DEV_ID_P12_BASE64 }}
p12-password: ${{ secrets.DEV_ID_P12_PASSWORD }}

- name: Create Universal Binary
run: |
mkdir -p build/universal
lipo -create -output build/universal/${{ env.BINARY_NAME }} build/slices/${{ env.BINARY_NAME }}-arm build/slices/${{ env.BINARY_NAME }}-intel
chmod +x build/universal/${{ env.BINARY_NAME }}

- name: Bundle
run: |
mkdir -p build/dmg
cp -R package/macos/${{ env.BUNDLE_NAME }}.app build/dmg/${{ env.BUNDLE_NAME }}.app
mkdir -p build/dmg/${{ env.BUNDLE_NAME }}.app/Contents/MacOS
mv build/universal/${{ env.BINARY_NAME }} build/dmg/${{ env.BUNDLE_NAME }}.app/Contents/MacOS/${{ env.BINARY_NAME }}

- name: Codesign
run: |
codesign --deep --force --options runtime \
--sign "${{ secrets.DEV_ID_IDENTITY_NAME }}" build/dmg/${{ env.BUNDLE_NAME }}.app

- name: Create DMG
run: |
mkdir -p build/out
ln -s /Applications build/dmg/Applications
hdiutil create -volname ${{ env.BUNDLE_NAME }} -srcfolder build/dmg -ov -format UDZO build/out/${{ env.BUNDLE_NAME }}.dmg

- name: Notarize DMG
run: |
xcrun notarytool submit build/out/${{ env.BUNDLE_NAME }}.dmg --apple-id "${{ secrets.APPLE_ID_EMAIL }}" --password "${{ secrets.APPLE_ID_PASSWORD }}" --team-id "${{ secrets.APPLE_ID_TEAM }}" --wait
xcrun stapler staple build/out/${{ env.BUNDLE_NAME }}.dmg

- name: Upload Universal DMG
uses: actions/upload-artifact@v4
with:
name: ${{ env.BINARY_NAME }}-macos-universal
path: build/out/${{ env.BUNDLE_NAME }}.dmg
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ state.plist
.zsign_cache
*.DS_Store
/tests
/build
6 changes: 6 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"recommendations": [
"rust-lang.rust-analyzer",
"editorconfig.editorconfig"
]
}
Loading