Files
csvu/.github/workflows/release.yaml

76 lines
2.0 KiB
YAML

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 }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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: zig-0.15.0-dev.734+adc4418ba
- 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