From 0e6b595d8adc2b33b4e253b800095f9e8eba83a3 Mon Sep 17 00:00:00 2001 From: Tw93 Date: Mon, 29 Dec 2025 20:52:13 +0800 Subject: [PATCH] chore: Bump version to 1.16.1 and refactor CI/CD to build separate macOS architectures with CGO enabled. --- .github/workflows/release.yml | 45 ++++++++++++++++++++++++++++------- Makefile | 19 ++++++++------- mole | 2 +- 3 files changed, 47 insertions(+), 19 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 349d961..1d24b62 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,9 +9,18 @@ permissions: contents: write jobs: - release: - name: Build & Release - runs-on: macos-latest + build: + name: Build + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: macos-13 + target: release-amd64 + artifact_name: binaries-amd64 + - os: macos-14 + target: release-arm64 + artifact_name: binaries-arm64 steps: - name: Checkout code uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4 @@ -23,18 +32,36 @@ jobs: - name: Build Binaries run: | - make release + make ${{ matrix.target }} ls -l bin/ + - name: Upload artifacts + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + with: + name: ${{ matrix.artifact_name }} + path: bin/*-darwin-* + retention-days: 1 + + release: + name: Publish Release + needs: build + runs-on: ubuntu-latest + steps: + - name: Download all artifacts + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + path: bin + pattern: binaries-* + merge-multiple: true + + - name: Display structure of downloaded files + run: ls -R bin/ + - name: Create Release uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2 if: startsWith(github.ref, 'refs/tags/') with: - files: | - bin/analyze-darwin-amd64 - bin/analyze-darwin-arm64 - bin/status-darwin-amd64 - bin/status-darwin-arm64 + files: bin/* generate_release_notes: true draft: false prerelease: false diff --git a/Makefile b/Makefile index 46ebfc9..d52b4e0 100644 --- a/Makefile +++ b/Makefile @@ -24,15 +24,16 @@ build: go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(ANALYZE)-go $(ANALYZE_SRC) go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(STATUS)-go $(STATUS_SRC) -# Release build (cross-compile) -release: - @echo "Building release binaries..." - # Analyze - CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(ANALYZE)-darwin-amd64 $(ANALYZE_SRC) - CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(ANALYZE)-darwin-arm64 $(ANALYZE_SRC) - # Status - CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(STATUS)-darwin-amd64 $(STATUS_SRC) - CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(STATUS)-darwin-arm64 $(STATUS_SRC) +# Release build targets (run on native architectures for CGO support) +release-amd64: + @echo "Building release binaries (amd64)..." + GOOS=darwin GOARCH=amd64 go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(ANALYZE)-darwin-amd64 $(ANALYZE_SRC) + GOOS=darwin GOARCH=amd64 go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(STATUS)-darwin-amd64 $(STATUS_SRC) + +release-arm64: + @echo "Building release binaries (arm64)..." + GOOS=darwin GOARCH=arm64 go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(ANALYZE)-darwin-arm64 $(ANALYZE_SRC) + GOOS=darwin GOARCH=arm64 go build -ldflags="$(LDFLAGS)" -o $(BIN_DIR)/$(STATUS)-darwin-arm64 $(STATUS_SRC) clean: @echo "Cleaning binaries..." diff --git a/mole b/mole index 1ac5cf0..df2ed3d 100755 --- a/mole +++ b/mole @@ -25,7 +25,7 @@ source "$SCRIPT_DIR/lib/core/common.sh" trap cleanup_temp_files EXIT INT TERM # Version info -VERSION="1.16.0" +VERSION="1.16.1" MOLE_TAGLINE="Deep clean and optimize your Mac." # Check TouchID configuration