From 2d7e6e492e4fe0d08d08b876c04fbbc7977a53b2 Mon Sep 17 00:00:00 2001 From: lily Date: Sat, 23 Aug 2025 09:39:06 +1000 Subject: [PATCH] add aarch64 --- .github/workflows/release.yml | 85 ++++++++++++++++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ffb9124..d60ebba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,9 +55,60 @@ jobs: name: agg-windows-amd64 path: bin/agg.exe + build_linux_aarch64: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Install cross-compilation tools + run: | + sudo apt-get update + sudo apt-get install -y build-essential gcc-aarch64-linux-gnu + + - name: Build project for Linux (aarch64) + run: make CC=aarch64-linux-gnu-gcc all + working-directory: ${{ github.workspace }} + + - name: Upload Linux aarch64 artifact + uses: actions/upload-artifact@v4 + with: + name: agg-linux-aarch64 + path: bin/agg + + build_windows_aarch64: + runs-on: ubuntu-latest # Cross-compile from Linux runner + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Install cross-compilation tools for Windows (AArch64) + run: | + sudo apt-get update + sudo apt-get install -y build-essential gcc-aarch64-w64-mingw32 + + - name: Build project for Windows (AArch64) + run: make CC=aarch64-w64-mingw32-gcc all + working-directory: ${{ github.workspace }} + + - name: Upload Windows aarch64 artifact + uses: actions/upload-artifact@v4 + with: + name: agg-windows-aarch64 + path: bin/agg.exe # Windows executables have .exe extension + create_release_and_upload_assets: runs-on: ubuntu-latest - needs: [build_linux, build_windows] # Depends on both build jobs to complete + needs: [ + build_linux, + build_windows, + build_linux_aarch64, + build_windows_aarch64, + ] # Depends on all build jobs to complete permissions: contents: write # Grant write permissions to the GITHUB_TOKEN for creating releases @@ -125,6 +176,12 @@ jobs: name: agg-windows-amd64 path: ./artifacts/windows/ + - name: Download Linux aarch64 artifact + uses: actions/download-artifact@v4 + with: + name: agg-linux-aarch64 + path: ./artifacts/linux-aarch64/ + - name: Upload Linux Release Asset uses: actions/upload-release-asset@v1 env: @@ -135,6 +192,32 @@ jobs: asset_name: agg-${{ env.NEW_TAG }}-linux-amd64 asset_content_type: application/octet-stream + - name: Upload Linux aarch64 Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./artifacts/linux-aarch64/agg + asset_name: agg-${{ env.NEW_TAG }}-linux-aarch64 + asset_content_type: application/octet-stream + + - name: Download Windows aarch64 artifact + uses: actions/download-artifact@v4 + with: + name: agg-windows-aarch64 + path: ./artifacts/windows-aarch64/ + + - name: Upload Windows aarch64 Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./artifacts/windows-aarch64/agg.exe + asset_name: agg-${{ env.NEW_TAG }}-windows-aarch64.exe + asset_content_type: application/octet-stream + - name: Upload Windows Release Asset uses: actions/upload-release-asset@v1 env: