62 lines
1.8 KiB
YAML
62 lines
1.8 KiB
YAML
name: Build & Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*' # Only run for version tags
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v3
|
|
with:
|
|
dotnet-version: '9.0.x'
|
|
|
|
- name: Build & Package
|
|
run: |
|
|
dotnet publish -c Release -o artifacts/release
|
|
mkdir -p artifacts/packages
|
|
cd artifacts/release
|
|
zip -r ../packages/firefly-${GITHUB_REF#refs/tags/}.zip .
|
|
|
|
- name: Extract Tag Name
|
|
run: |
|
|
TAG_NAME="${GITHUB_REF#refs/tags/}"
|
|
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
|
|
|
|
- name: Create Release in Gitea
|
|
run: |
|
|
RELEASE_DATA=$(curl -s -X POST "${GITEA_URL}/api/v1/repos/${GITEA_REPO}/releases" \
|
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{
|
|
\"tag_name\": \"${TAG_NAME}\",
|
|
\"name\": \"Release ${TAG_NAME}\",
|
|
\"body\": \"Automated release for ${TAG_NAME}\",
|
|
\"draft\": false,
|
|
\"prerelease\": false
|
|
}")
|
|
|
|
echo "Release created: $RELEASE_DATA"
|
|
RELEASE_ID=$(echo "$RELEASE_DATA" | jq '.id')
|
|
|
|
if [ -z "$RELEASE_ID" ] || [ "$RELEASE_ID" = "null" ]; then
|
|
echo "Failed to retrieve release ID. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
curl -X POST "${GITEA_URL}/api/v1/repos/${GITEA_REPO}/releases/${RELEASE_ID}/assets?name=firefly-${TAG_NAME}.zip" \
|
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
|
-H "Content-Type: application/zip" \
|
|
--data-binary @artifacts/packages/firefly-${TAG_NAME}.zip
|
|
|
|
env:
|
|
GITEA_URL: https://gitea.innovativedevsolutions.org
|
|
GITEA_REPO: IDSolutions/fireflyclient
|
|
GITEA_TOKEN: ${{ secrets.NET_TOKEN }}
|