Skip to content

Commit 31e2b7e

Browse files
committed
Merge remote-tracking branch 'origin/main' into pr-275
2 parents 447e461 + d9859ac commit 31e2b7e

File tree

87 files changed

+1521
-2260
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+1521
-2260
lines changed

.github/workflows/build-macos.yml

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ on:
2020
workflow_dispatch:
2121
inputs:
2222
skip_build:
23-
description: "Skip build and use artifacts from a previous run"
23+
description: 'Skip build and use artifacts from a previous run'
2424
required: false
2525
default: false
2626
type: boolean
2727
run_id:
28-
description: "Run ID to download artifacts from (leave empty for latest)"
28+
description: 'Run ID to download artifacts from (leave empty for latest)'
2929
required: false
3030
type: string
3131
push:
@@ -39,30 +39,30 @@ jobs:
3939
strategy:
4040
matrix:
4141
include:
42-
- os: macos-13 # Intel
42+
- os: macos-13 # Intel
4343
target: x86_64-apple-darwin
4444
arch: x86_64
45-
- os: macos-14 # Apple Silicon
45+
- os: macos-14 # Apple Silicon
4646
target: aarch64-apple-darwin
4747
arch: aarch64
48-
48+
4949
steps:
5050
- uses: actions/checkout@v4
51-
51+
5252
- name: Setup Rust
5353
uses: dtolnay/rust-toolchain@stable
54-
54+
5555
- name: Setup Rust cache
5656
uses: Swatinem/rust-cache@v2
5757
with:
5858
workspaces: src-tauri
59-
59+
6060
- name: Setup Bun
6161
uses: oven-sh/setup-bun@v2
62-
62+
6363
- name: Install dependencies
6464
run: bun install
65-
65+
6666
- name: Import Apple certificates
6767
env:
6868
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
@@ -72,49 +72,49 @@ jobs:
7272
# Create variables
7373
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
7474
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
75-
75+
7676
# Import certificate from secrets
7777
echo -n "$APPLE_CERTIFICATE" | base64 --decode -o $CERTIFICATE_PATH
78-
78+
7979
# Create temporary keychain
8080
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
8181
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
8282
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
83-
83+
8484
# Import certificate to keychain
8585
security import $CERTIFICATE_PATH -P "$APPLE_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
8686
security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
8787
security list-keychain -d user -s $KEYCHAIN_PATH
88-
88+
8989
- name: Build native
9090
env:
9191
CI: true
9292
run: bun run tauri build
93-
93+
9494
- name: Upload architecture-specific artifacts
9595
uses: actions/upload-artifact@v4
9696
with:
9797
name: macos-${{ matrix.arch }}
9898
path: |
99-
src-tauri/target/release/bundle/macos/Claudia.app
99+
src-tauri/target/release/bundle/macos/opcode.app
100100
src-tauri/target/release/bundle/dmg/*.dmg
101101
retention-days: 1
102-
102+
103103
universal:
104104
name: Create Universal Binary
105105
needs: [build]
106106
if: ${{ !cancelled() && (needs.build.result == 'success' || needs.build.result == 'skipped') }}
107107
runs-on: macos-latest
108108
steps:
109109
- uses: actions/checkout@v4
110-
110+
111111
- name: Download artifacts from current workflow
112112
if: ${{ !inputs.skip_build }}
113113
uses: actions/download-artifact@v4
114114
with:
115115
pattern: macos-*
116116
path: artifacts
117-
117+
118118
- name: Download artifacts from specific run
119119
if: ${{ inputs.skip_build && inputs.run_id != '' }}
120120
uses: dawidd6/action-download-artifact@v3
@@ -123,7 +123,7 @@ jobs:
123123
run_id: ${{ inputs.run_id }}
124124
name: macos-*
125125
path: artifacts
126-
126+
127127
- name: Download artifacts from latest run
128128
if: ${{ inputs.skip_build && inputs.run_id == '' }}
129129
uses: dawidd6/action-download-artifact@v3
@@ -132,7 +132,7 @@ jobs:
132132
workflow_conclusion: success
133133
name: macos-*
134134
path: artifacts
135-
135+
136136
- name: List downloaded artifacts
137137
run: |
138138
echo "📁 Artifact structure:"
@@ -142,7 +142,7 @@ jobs:
142142
ls -la artifacts/
143143
ls -la artifacts/macos-aarch64/ || echo "macos-aarch64 directory not found"
144144
ls -la artifacts/macos-x86_64/ || echo "macos-x86_64 directory not found"
145-
145+
146146
- name: Import Apple certificates
147147
env:
148148
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
@@ -152,65 +152,65 @@ jobs:
152152
# Create variables
153153
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
154154
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
155-
155+
156156
# Import certificate from secrets
157157
echo -n "$APPLE_CERTIFICATE" | base64 --decode -o $CERTIFICATE_PATH
158-
158+
159159
# Create temporary keychain
160160
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
161161
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
162162
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
163-
163+
164164
# Import certificate to keychain
165165
security import $CERTIFICATE_PATH -P "$APPLE_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
166166
security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
167167
security list-keychain -d user -s $KEYCHAIN_PATH
168-
168+
169169
- name: Create universal app
170170
run: |
171171
# Create temp directory
172172
mkdir -p dmg_temp
173-
173+
174174
# Extract zip files if they exist
175175
if [ -f "artifacts/macos-aarch64.zip" ]; then
176176
echo "📦 Extracting macos-aarch64.zip..."
177177
unzip -q artifacts/macos-aarch64.zip -d artifacts/macos-aarch64/
178178
fi
179-
179+
180180
if [ -f "artifacts/macos-x86_64.zip" ]; then
181181
echo "📦 Extracting macos-x86_64.zip..."
182182
unzip -q artifacts/macos-x86_64.zip -d artifacts/macos-x86_64/
183183
fi
184-
184+
185185
# Find the actual app paths
186-
AARCH64_APP=$(find artifacts/macos-aarch64 -name "Claudia.app" -type d | head -1)
187-
X86_64_APP=$(find artifacts/macos-x86_64 -name "Claudia.app" -type d | head -1)
188-
186+
AARCH64_APP=$(find artifacts/macos-aarch64 -name "opcode.app" -type d | head -1)
187+
X86_64_APP=$(find artifacts/macos-x86_64 -name "opcode.app" -type d | head -1)
188+
189189
if [ -z "$AARCH64_APP" ] || [ -z "$X86_64_APP" ]; then
190190
echo "❌ Could not find app bundles"
191191
echo "AARCH64_APP: $AARCH64_APP"
192192
echo "X86_64_APP: $X86_64_APP"
193193
exit 1
194194
fi
195-
195+
196196
echo "✅ Found app bundles:"
197197
echo " ARM64: $AARCH64_APP"
198198
echo " x86_64: $X86_64_APP"
199-
199+
200200
# Copy ARM64 app as base
201201
cp -R "$AARCH64_APP" dmg_temp/
202-
202+
203203
# Create universal binary using lipo
204-
lipo -create -output dmg_temp/Claudia.app/Contents/MacOS/claudia \
205-
"$AARCH64_APP/Contents/MacOS/claudia" \
206-
"$X86_64_APP/Contents/MacOS/claudia"
207-
204+
lipo -create -output dmg_temp/opcode.app/Contents/MacOS/opcode \
205+
"$AARCH64_APP/Contents/MacOS/opcode" \
206+
"$X86_64_APP/Contents/MacOS/opcode"
207+
208208
# Ensure executable permissions are set
209-
chmod +x dmg_temp/Claudia.app/Contents/MacOS/claudia
210-
209+
chmod +x dmg_temp/opcode.app/Contents/MacOS/opcode
210+
211211
echo "✅ Universal binary created"
212-
lipo -info dmg_temp/Claudia.app/Contents/MacOS/claudia
213-
212+
lipo -info dmg_temp/opcode.app/Contents/MacOS/opcode
213+
214214
- name: Sign app bundle
215215
env:
216216
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
@@ -221,22 +221,22 @@ jobs:
221221
--force \
222222
--deep \
223223
--entitlements src-tauri/entitlements.plist \
224-
dmg_temp/Claudia.app
225-
224+
dmg_temp/opcode.app
225+
226226
- name: Create DMG
227227
run: |
228-
hdiutil create -volname "Claudia Installer" \
228+
hdiutil create -volname "opcode Installer" \
229229
-srcfolder dmg_temp \
230-
-ov -format UDZO Claudia.dmg
231-
230+
-ov -format UDZO opcode.dmg
231+
232232
- name: Sign DMG
233233
env:
234234
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
235235
run: |
236236
codesign --sign "$APPLE_SIGNING_IDENTITY" \
237237
--timestamp \
238-
--force Claudia.dmg
239-
238+
--force opcode.dmg
239+
240240
- name: Notarize DMG
241241
env:
242242
APPLE_ID: ${{ secrets.APPLE_ID }}
@@ -248,47 +248,47 @@ jobs:
248248
--apple-id "$APPLE_ID" \
249249
--team-id "$APPLE_TEAM_ID" \
250250
--password "$APPLE_PASSWORD"
251-
251+
252252
# Submit for notarization
253-
xcrun notarytool submit Claudia.dmg \
253+
xcrun notarytool submit opcode.dmg \
254254
--keychain-profile "notarytool-profile" \
255255
--wait
256-
256+
257257
- name: Staple notarization
258-
run: xcrun stapler staple Claudia.dmg
259-
258+
run: xcrun stapler staple opcode.dmg
259+
260260
- name: Verify DMG
261261
run: |
262-
spctl -a -t open -vvv --context context:primary-signature Claudia.dmg
262+
spctl -a -t open -vvv --context context:primary-signature opcode.dmg
263263
echo "✅ DMG verification complete"
264-
264+
265265
- name: Create artifacts directory
266266
run: |
267267
mkdir -p dist/macos-universal
268-
cp Claudia.dmg dist/macos-universal/
269-
268+
cp opcode.dmg dist/macos-universal/
269+
270270
# Also save the app bundle using ditto to preserve permissions and signatures
271271
ditto -c -k --sequesterRsrc --keepParent \
272-
dmg_temp/Claudia.app dist/macos-universal/Claudia.app.zip
273-
272+
dmg_temp/opcode.app dist/macos-universal/opcode.app.zip
273+
274274
# Generate checksum
275275
shasum -a 256 dist/macos-universal/* > dist/macos-universal/checksums.txt
276-
276+
277277
- name: Upload artifacts
278278
uses: actions/upload-artifact@v4
279279
with:
280280
name: macos-universal
281281
path: dist/macos-universal/*
282-
282+
283283
- name: Cleanup
284284
if: always()
285285
run: |
286286
echo "🧹 Cleaning up temporary directories..."
287287
rm -rf dmg_temp temp_x86 artifacts
288-
288+
289289
# Clean up keychain
290290
if [ -n "$RUNNER_TEMP" ] && [ -f "$RUNNER_TEMP/app-signing.keychain-db" ]; then
291291
security delete-keychain "$RUNNER_TEMP/app-signing.keychain-db" || true
292292
fi
293-
293+
294294
echo "✅ Cleanup complete"

.github/workflows/release.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ jobs:
5555
5656
# Linux artifacts
5757
if [ -d "artifacts/linux-x86_64" ]; then
58-
cp artifacts/linux-x86_64/*.deb release-assets/Claudia_${{ steps.version.outputs.version }}_linux_x86_64.deb || true
59-
cp artifacts/linux-x86_64/*.AppImage release-assets/Claudia_${{ steps.version.outputs.version }}_linux_x86_64.AppImage || true
58+
cp artifacts/linux-x86_64/*.deb release-assets/opcode_${{ steps.version.outputs.version }}_linux_x86_64.deb || true
59+
cp artifacts/linux-x86_64/*.AppImage release-assets/opcode_${{ steps.version.outputs.version }}_linux_x86_64.AppImage || true
6060
fi
6161
6262
# macOS artifacts
6363
if [ -d "artifacts/macos-universal" ]; then
64-
cp artifacts/macos-universal/Claudia.dmg release-assets/Claudia_${{ steps.version.outputs.version }}_macos_universal.dmg || true
65-
cp artifacts/macos-universal/Claudia.app.zip release-assets/Claudia_${{ steps.version.outputs.version }}_macos_universal.app.tar.gz || true
64+
cp artifacts/macos-universal/opcode.dmg release-assets/opcode_${{ steps.version.outputs.version }}_macos_universal.dmg || true
65+
cp artifacts/macos-universal/opcode.app.zip release-assets/opcode_${{ steps.version.outputs.version }}_macos_universal.app.tar.gz || true
6666
fi
6767
6868
# Create source code archives
@@ -74,8 +74,8 @@ jobs:
7474
echo "Creating source code archives..."
7575
7676
# Create a clean export of the repository
77-
git archive --format=tar.gz --prefix=claudia-${CLEAN_VERSION}/ -o release-assets/claudia-${CLEAN_VERSION}.tar.gz HEAD
78-
git archive --format=zip --prefix=claudia-${CLEAN_VERSION}/ -o release-assets/claudia-${CLEAN_VERSION}.zip HEAD
77+
git archive --format=tar.gz --prefix=opcode-${CLEAN_VERSION}/ -o release-assets/opcode-${CLEAN_VERSION}.tar.gz HEAD
78+
git archive --format=zip --prefix=opcode-${CLEAN_VERSION}/ -o release-assets/opcode-${CLEAN_VERSION}.zip HEAD
7979
8080
# Generate signatures for all files
8181
cd release-assets
@@ -90,17 +90,17 @@ jobs:
9090
uses: softprops/action-gh-release@v1
9191
with:
9292
tag_name: ${{ steps.version.outputs.version }}
93-
name: Claudia ${{ steps.version.outputs.version }}
93+
name: opcode ${{ steps.version.outputs.version }}
9494
draft: true
9595
prerelease: false
9696
generate_release_notes: true
9797
files: release-assets/*
9898
body: |
9999
<div align="center">
100-
<img src="https://raw.githubusercontent.com/${{ github.repository }}/${{ steps.version.outputs.version }}/src-tauri/icons/icon.png" alt="Claudia Logo" width="128" height="128">
100+
<img src="https://raw.githubusercontent.com/${{ github.repository }}/${{ steps.version.outputs.version }}/src-tauri/icons/icon.png" alt="opcode Logo" width="128" height="128">
101101
</div>
102102
103-
## Claudia ${{ steps.version.outputs.version }}
103+
## opcode ${{ steps.version.outputs.version }}
104104
105105
This release was built and signed by CI. Artifacts for macOS and Linux are attached below.
106106
@@ -114,5 +114,5 @@ jobs:
114114
115115
### Installation
116116
117-
- macOS: Open the `.dmg` and drag Claudia to Applications.
117+
- macOS: Open the `.dmg` and drag opcode to Applications.
118118
- Linux: `chmod +x` the `.AppImage` and run it, or install the `.deb` on Debian/Ubuntu.

0 commit comments

Comments
 (0)