Skip to content

Add a release workflow #8

Add a release workflow

Add a release workflow #8

Workflow file for this run

name: Release
on:
push:
tags:
- '*'
jobs:
build:
name: Build
strategy:
matrix:
config:
- name: Linux
os: ubuntu-latest
artifact_name: wrapper_c-linux-output
- name: macOS
os: macos-latest
artifact_name: wrapper_c-macos-output
runs-on: ${{ matrix.config.os }}
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
submodules: true
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- run: pip install meson ninja
- name: Build
run: |
if [[ "${{ matrix.config.name }}" == 'macOS' ]]; then
export MACOSX_DEPLOYMENT_TARGET=12.0
fi
kernel="$(uname -s | awk '{print tolower($0)}')"
arch="$(uname -m)"
meson --prefix="$(pwd)/wrapper_c-${{ github.ref_name }}-${kernel}-${arch}" --buildtype=release build
ninja -C build install
mkdir -p output
tar -zcvf "output/wrapper_c-${{ github.ref_name }}-${kernel}-${arch}.tgz" "wrapper_c-${{ github.ref_name }}-${kernel}-${arch}"
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.config.artifact_name }}
path: output
publish:
needs: build
runs-on: ubuntu-latest
steps:
- run: mkdir -p output
- uses: actions/download-artifact@v4
with:
name: wrapper_c-linux-output
path: output
- uses: actions/download-artifact@v4
with:
name: wrapper_c-macos-output
path: output
- name: Upload
run: |
content="$(cat .github/templates/release.md)"
pushd output >/dev/null
content="${content/<MD5SUM>/$(md5sum *)}"
content="${content/<SHA256SUM>/$(sha256sum *)}"
popd >/dev/null
echo "${content}" >note.md
gh release create -t "wrapper_c ${{ github.ref_name }}" -F note.md ${{ github.ref_name }} output/*