3939 uses : actions/setup-go@v5
4040 with :
4141 go-version : " 1.25"
42-
43- - name : Set up Node.js
44- uses : actions/setup-node@v4
45- with :
46- node-version : ' 20'
47-
48- - name : Install Wails
49- shell : bash
50- run : go install github.com/wailsapp/wails/v2/cmd/wails@latest
51-
52- - name : Install Linux dependencies
53- if : matrix.os == 'linux'
54- run : |
55- sudo apt-get update
56- sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev pkg-config
57- sudo ln -sf /usr/lib/x86_64-linux-gnu/pkgconfig/webkit2gtk-4.1.pc /usr/lib/x86_64-linux-gnu/pkgconfig/webkit2gtk-4.0.pc || true
5842
5943 - name : Get version info
6044 id : version
7559 GOOS : ${{ matrix.os }}
7660 GOARCH : ${{ matrix.arch }}
7761
78- - name : Build Wails GUI
79- shell : bash
80- working-directory : gui
81- run : |
82- LDFLAGS="-s -w -X main.Version=${{ steps.version.outputs.version }} -X main.Commit=${{ steps.version.outputs.commit }} -X main.Date=${{ steps.version.outputs.date }}"
83- wails build -clean -platform ${{ matrix.os }}/${{ matrix.arch }} -ldflags "$LDFLAGS"
84-
85- - name : Sign macOS app
86- if : matrix.os == 'darwin'
87- run : |
88- codesign --force --deep --sign - build/bin/arm-emulator.app
89-
90- - name : List build artifacts
91- shell : bash
92- run : |
93- echo "=== Checking build directory ==="
94- ls -laR build/ || echo "No build directory found"
95-
9662 - name : Create release artifact name
9763 id : artifact
9864 shell : bash
@@ -121,30 +87,6 @@ jobs:
12187 cp ${{ matrix.binary_name }} "$ARTIFACT_NAME"
12288 fi
12389 echo "artifact_name=$ARTIFACT_NAME" >> $GITHUB_OUTPUT
124-
125- # Determine GUI artifact location and name
126- if [ "${{ matrix.os }}" = "darwin" ]; then
127- GUI_SOURCE="build/bin/arm-emulator.app"
128- GUI_ARTIFACT_NAME="arm-emulator-wails-${PLATFORM}-${{ matrix.arch }}.app.tar.gz"
129- if [ -d "$GUI_SOURCE" ]; then
130- tar -czf "$GUI_ARTIFACT_NAME" -C build/bin arm-emulator.app
131- echo "gui_artifact_name=$GUI_ARTIFACT_NAME" >> $GITHUB_OUTPUT
132- fi
133- elif [ "${{ matrix.os }}" = "windows" ]; then
134- GUI_SOURCE="build/bin/arm-emulator-gui.exe"
135- GUI_ARTIFACT_NAME="arm-emulator-wails-${PLATFORM}-${{ matrix.arch }}.exe"
136- if [ -f "$GUI_SOURCE" ]; then
137- cp "$GUI_SOURCE" "$GUI_ARTIFACT_NAME"
138- echo "gui_artifact_name=$GUI_ARTIFACT_NAME" >> $GITHUB_OUTPUT
139- fi
140- else
141- GUI_SOURCE="build/bin/arm-emulator-gui"
142- GUI_ARTIFACT_NAME="arm-emulator-wails-${PLATFORM}-${{ matrix.arch }}"
143- if [ -f "$GUI_SOURCE" ]; then
144- cp "$GUI_SOURCE" "$GUI_ARTIFACT_NAME"
145- echo "gui_artifact_name=$GUI_ARTIFACT_NAME" >> $GITHUB_OUTPUT
146- fi
147- fi
14890
14991 - name : Generate SHA256 checksum
15092 id : checksum
@@ -167,21 +109,6 @@ jobs:
167109 # Display checksum for verification
168110 echo "Generated checksum:"
169111 cat "$CHECKSUM_FILE"
170-
171- # Generate checksum for GUI artifact if it exists
172- GUI_ARTIFACT_NAME="${{ steps.artifact.outputs.gui_artifact_name }}"
173- if [ -n "$GUI_ARTIFACT_NAME" ] && [ -f "$GUI_ARTIFACT_NAME" ]; then
174- GUI_CHECKSUM_FILE="${GUI_ARTIFACT_NAME}.sha256"
175- if [ "$RUNNER_OS" = "Windows" ]; then
176- HASH=$(powershell -Command "(Get-FileHash -Algorithm SHA256 '$GUI_ARTIFACT_NAME').Hash.ToLower()")
177- echo "$HASH $GUI_ARTIFACT_NAME" > "$GUI_CHECKSUM_FILE"
178- else
179- shasum -a 256 "$GUI_ARTIFACT_NAME" > "$GUI_CHECKSUM_FILE"
180- fi
181- echo "gui_checksum_file=$GUI_CHECKSUM_FILE" >> $GITHUB_OUTPUT
182- echo "Generated GUI checksum:"
183- cat "$GUI_CHECKSUM_FILE"
184- fi
185112
186113 - name : Upload artifact
187114 uses : actions/upload-artifact@v4
@@ -197,22 +124,6 @@ jobs:
197124 path : ${{ steps.checksum.outputs.checksum_file }}
198125 retention-days : 7
199126
200- - name : Upload GUI artifact
201- if : steps.artifact.outputs.gui_artifact_name != ''
202- uses : actions/upload-artifact@v4
203- with :
204- name : ${{ steps.artifact.outputs.gui_artifact_name }}
205- path : ${{ steps.artifact.outputs.gui_artifact_name }}
206- retention-days : 7
207-
208- - name : Upload GUI checksum
209- if : steps.checksum.outputs.gui_checksum_file != ''
210- uses : actions/upload-artifact@v4
211- with :
212- name : ${{ steps.checksum.outputs.gui_checksum_file }}
213- path : ${{ steps.checksum.outputs.gui_checksum_file }}
214- retention-days : 7
215-
216127 build-swift-gui :
217128 name : Build Swift GUI (macOS arm64)
218129 runs-on : macos-latest
0 commit comments