Skip to content

Commit

Permalink
Add a release workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
adonis0147 committed May 30, 2024
1 parent ff818cf commit 6ccfd87
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 0 deletions.
9 changes: 9 additions & 0 deletions .github/templates/release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
## MD5 Checksums
```
<MD5SUM>
```

## SHA256 Checksums
```
<SHA256SUM>
```
91 changes: 91 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
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
env:
GH_REPO: ${{ github.repository }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
submodules: true
fetch-depth: 0

- 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/*

0 comments on commit 6ccfd87

Please sign in to comment.