Skip to content

Commit bba97a3

Browse files
author
Test User
committed
fix(ci): comprehensive fixes for release workflow
1. macOS universal binary: Run even if non-macOS builds failed (armv7) 2. armv7: Removed from build matrix - neo_frizbee doesn't support 32-bit 3. Docker builds: Install GCC-10 on Ubuntu 20.04 for aws-lc-sys compatibility 4. crates.io: Made publishing non-blocking (unpublished git dependencies) 5. Desktop trigger: Remove unsupported inputs causing API errors Refs #1874
1 parent 4457316 commit bba97a3

2 files changed

Lines changed: 27 additions & 14 deletions

File tree

.github/workflows/release-comprehensive.yml

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,10 @@ jobs:
115115
- os: [self-hosted, bigbox]
116116
target: aarch64-unknown-linux-musl
117117
use_cross: true
118-
- os: [self-hosted, bigbox]
119-
target: armv7-unknown-linux-musleabihf
120-
use_cross: true
118+
# NOTE: armv7 removed - neo_frizbee dependency doesn't support 32-bit
119+
# - os: [self-hosted, bigbox]
120+
# target: armv7-unknown-linux-musleabihf
121+
# use_cross: true
121122
# macOS builds -- both run on self-hosted Apple Silicon Mac
122123
# (has zig installed for zlob dependency, can build both architectures)
123124
- os: [self-hosted, macOS]
@@ -375,8 +376,8 @@ jobs:
375376
create-universal-macos:
376377
name: Create macOS universal binaries
377378
needs: build-binaries
378-
# Only run if both macOS builds succeeded
379-
if: needs.build-binaries.result == 'success'
379+
# Run if macOS builds completed (even if other targets failed)
380+
if: always() && needs.build-binaries.result != 'cancelled'
380381
runs-on: [self-hosted, macOS]
381382
steps:
382383
- name: Download x86_64 macOS binaries
@@ -434,8 +435,8 @@ jobs:
434435
sign-and-notarize-macos:
435436
name: Sign and notarize macOS binaries
436437
needs: create-universal-macos
437-
# Only run if universal binaries were created successfully
438-
if: needs.create-universal-macos.result == 'success'
438+
# Run if universal binary creation completed (even if other jobs failed)
439+
if: always() && needs.create-universal-macos.result == 'success'
439440
runs-on: [self-hosted, macOS]
440441
steps:
441442
- name: Checkout repository
@@ -606,11 +607,7 @@ jobs:
606607
owner: 'terraphim',
607608
repo: 'terraphim-ai-desktop',
608609
workflow_id: 'release-comprehensive.yml',
609-
ref: 'main',
610-
inputs: {
611-
triggered_by: 'terraphim-ai-release',
612-
source_tag: tag
613-
}
610+
ref: 'main'
614611
});
615612
616613
console.log('Desktop release workflow triggered successfully');
@@ -630,6 +627,8 @@ jobs:
630627
verify-release-assets:
631628
name: Verify release assets
632629
needs: [build-binaries, sign-and-notarize-macos, build-debian-packages]
630+
# Run even if some builds failed, but verify critical assets exist
631+
if: always() && needs.sign-and-notarize-macos.result == 'success'
633632
runs-on: ubuntu-latest
634633
steps:
635634
- name: Checkout repository
@@ -684,8 +683,8 @@ jobs:
684683
create-release:
685684
name: Create GitHub release
686685
needs: [verify-versions, verify-release-assets]
687-
# Only create release if version verification and asset verification passed
688-
if: success()
686+
# Create release if version and assets verification passed
687+
if: always() && needs.verify-versions.result == 'success' && needs.verify-release-assets.result == 'success'
689688
runs-on: ubuntu-latest
690689
permissions:
691690
contents: write
@@ -1048,6 +1047,8 @@ jobs:
10481047
# Use always() to run even if some upstream jobs failed, but only for version tags
10491048
if: always() && startsWith(github.ref, 'refs/tags/v') && needs.verify-versions.result == 'success'
10501049
# NOTE: environment removed to avoid approval requirements
1050+
# Publishing may fail due to unpublished git dependencies (e.g., fff-search)
1051+
continue-on-error: true
10511052

10521053
steps:
10531054
- name: Checkout repository

docker/Dockerfile.multiarch

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,20 @@ RUN apt-get update -qq && apt-get install -yqq --no-install-recommends \
5050
pkg-config \
5151
musl-tools \
5252
musl-dev \
53+
software-properties-common \
5354
&& rm -rf /var/lib/apt/lists/*
5455

56+
# Ubuntu 20.04 ships GCC 9 which has a memcmp bug (GCC #95189) that aws-lc-sys
57+
# refuses to compile with. Install GCC 10 from the ubuntu-toolchain-r PPA.
58+
RUN if [ "${UBUNTU_VERSION}" = "20.04" ]; then \
59+
add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
60+
apt-get update -qq && \
61+
apt-get install -yqq --no-install-recommends gcc-10 g++-10 && \
62+
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 && \
63+
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 && \
64+
rm -rf /var/lib/apt/lists/*; \
65+
fi
66+
5567
# Install cross-compilation tools based on target architecture
5668
RUN case "${TARGETARCH}" in \
5769
"arm64") \

0 commit comments

Comments
 (0)