xenia/.github/workflows/Create_release.yml
2025-08-08 11:58:07 -07:00

60 lines
1.7 KiB
YAML

name: Create release
on:
workflow_call:
inputs:
os:
required: true
type: string
secrets:
RELEASE_TOKEN:
required: true
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
#- uses: actions/checkout@main
# with:
# repository: ${{ github.repository_owner }}/xenia-canary-releases
- uses: actions/download-artifact@main
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
GH_REPO: ${{ github.repository_owner }}/xenia-canary-releases
notes: ${{ github.event.head_commit.message }}
run: |
case ${{ inputs.os }} in
windows)
asset=xenia_canary_${{ inputs.os }}.zip
7z a $asset -xr!'*.pdb' -mx9 -bb3
;;
linux)
asset=xenia_canary_${{ inputs.os }}.tar.xz
;;
esac
if [ ! -f $asset ]; then
ls -R
echo "::error::$asset doesn't exist!"
exit 1
fi
if [ $(stat -c%s $asset) -lt 100000 ]; then
ls -R
echo "::error::$asset is too small!"
exit 1
fi
create_or_edit_release() {
local tag=$1
local title=$2
if gh release view $tag; then
gh release edit $tag -t $title -n "$notes"
gh release upload $tag $asset --clobber
else
gh release create $tag $asset --target 925ed98d5dce604b651027c36fb522dc1ff0fa55 -t $title -n "$notes"
fi
}
tag=${GITHUB_SHA::7}
create_or_edit_release $tag ${tag}_$GITHUB_REF_NAME
create_or_edit_release $GITHUB_REF_NAME $tag