Skip to content
Merged
Changes from all commits
Commits
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
48 changes: 47 additions & 1 deletion .github/workflows/bun-compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,24 @@ on:

jobs:
build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- target: bun-darwin-arm64
os: macos-latest
output: auggie-darwin-arm64
artifact: auggie-darwin-arm64
- target: bun-darwin-x64
os: macos-latest
output: auggie-darwin-x64
artifact: auggie-darwin-x64
- target: bun-linux-x64
os: ubuntu-latest
output: auggie-linux-x64
artifact: auggie-linux-x64
- target: bun-windows-x64
os: ubuntu-latest
output: auggie-windows-x64.exe
artifact: auggie-windows-x64
permissions:
Expand All @@ -57,6 +61,42 @@ jobs:
- name: Compile binary
run: bun build augment.mjs --compile --target=${{ matrix.target }} --outfile=${{ matrix.output }}

- name: Import code signing certificate
if: contains(matrix.target, 'darwin')
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
run: |
echo "$APPLE_CERTIFICATE" | base64 --decode > certificate.p12
security create-keychain -p "temppass" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temppass" build.keychain
security import certificate.p12 -k build.keychain -P "$APPLE_CERTIFICATE_PASSWORD" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "temppass" build.keychain
rm -f certificate.p12

- name: Sign binary
if: contains(matrix.target, 'darwin')
run: |
IDENTITY=$(security find-identity -v -p codesigning build.keychain | grep "Developer ID" | head -1 | sed 's/.*"\(.*\)".*/\1/')
if [ -z "$IDENTITY" ]; then
echo "::error::No Developer ID signing identity found in build.keychain"
exit 1
fi
echo "Signing with identity: $IDENTITY"
codesign --force --options runtime --timestamp --sign "$IDENTITY" ${{ matrix.output }}

- name: Notarize binary
if: contains(matrix.target, 'darwin')
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: |
zip "${{ matrix.output }}.zip" "${{ matrix.output }}"
xcrun notarytool submit "${{ matrix.output }}.zip" --apple-id "$APPLE_ID" --password "$APPLE_APP_SPECIFIC_PASSWORD" --team-id "$APPLE_TEAM_ID" --wait
Copy link

@augment-app-staging augment-app-staging bot Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow submits for notarization but doesn’t staple the ticket afterwards. Without stapling, some users may still see Gatekeeper prompts/errors when running the downloaded binary offline.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

rm -f "${{ matrix.output }}.zip"

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
Expand All @@ -75,6 +115,12 @@ jobs:
path: artifacts
merge-multiple: true

- name: Generate checksums
run: |
cd artifacts
sha256sum auggie-* > checksums.txt
cat checksums.txt

- name: Create GitHub Release
env:
GH_TOKEN: ${{ github.token }}
Expand Down
Loading