From 0571f107f718a97fe7cf2079c9916faee197373d Mon Sep 17 00:00:00 2001 From: Tilo K Date: Sat, 7 Jun 2025 23:16:28 +0200 Subject: [PATCH] add release ga --- .github/workflows/release.yaml | 73 ++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..0a07a19 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,73 @@ +name: Release + +on: + push: + tags: + - "v*.*.*" # e.g. v1.2.3 + +env: + BINARY_NAME: csvu + SRC: src/main.zig + +jobs: + create_release: + name: Create GitHub Release + runs-on: ubuntu-latest + outputs: + upload_url: ${{ steps.make_release.outputs.upload_url }} + steps: + - name: Create Release + id: make_release + uses: actions/create-release@v1 + with: + tag_name: ${{ github.ref_name }} + release_name: ${{ github.ref_name }} + draft: false + prerelease: false + + build_and_upload: + name: Build & Upload Assets + needs: create_release + runs-on: ubuntu-latest + strategy: + matrix: + include: + - triple: x86_64-linux-gnu + ext: "" + - triple: aarch64-linux-gnu + ext: "" + - triple: x86_64-windows-gnu + ext: ".exe" + - triple: x86_64-macos + ext: "" + - triple: aarch64-macos + ext: "" + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install Zig + uses: mlugg/setup-zig@v2 + with: + version: 0.15.0 + + - name: Build for ${{ matrix.triple }} + run: | + zig build-exe "${SRC}" \ + -Dtarget=${{ matrix.triple }} \ + -O ReleaseSafe \ + -femit-bin="${BINARY_NAME}${{ matrix.ext }}" + + - name: Package binary + run: | + mkdir -p artifacts + zip -j artifacts/"${BINARY_NAME}-${{ github.ref_name }}-${{ matrix.triple }}.zip" \ + "${BINARY_NAME}${{ matrix.ext }}" + + - name: Upload release asset + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: artifacts/"${BINARY_NAME}-${{ github.ref_name }}-${{ matrix.triple }}.zip" + asset_name: "${BINARY_NAME}-${{ github.ref_name }}-${{ matrix.triple }}.zip" + asset_content_type: application/zip