name: Publish Beta Release on: push: branches: - develop paths: - src/** - .gitea/workflows/release-beta.yml workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Read Version from version.txt id: read_version run: | VERSION=beta echo "version=$VERSION" >> "$GITHUB_OUTPUT" echo "tag=v$VERSION" >> "$GITHUB_OUTPUT" echo "Version: $VERSION" - name: Extract Release Notes id: release_notes run: | VERSION=beta RELEASE_NOTES=$(awk -v ver="Unreleased" ' /^## \[/ { if (found) exit if (index($0, "[" ver "]") > 0) found = 1 next } found { print } ' RELEASENOTES.md) # Write multi-line output properly echo "body<> "$GITHUB_OUTPUT" echo "$RELEASE_NOTES" >> "$GITHUB_OUTPUT" echo "EOF" >> "$GITHUB_OUTPUT" - name: Compile Spearhead uses: https://git.dutchie031.com/dutchie031/DcsMissionScriptingTools/github-actions/bundle-script@bundle-script/v1 with: source-root: ./src output-file: ./output/spearhead.lua - name: Remove existing tag if it exists id: check_tag run: | TAG="${{ steps.read_version.outputs.tag }}" if git tag | grep -q "^$TAG$"; then echo "Tag exists. Removing it..." git push origin :refs/tags/"$TAG" || true git tag -d "$TAG" || true fi echo "Ready to create fresh tag: $TAG" - name: Apply Tag to Current Commit run: | git config user.name "github-actions" git config user.email "github-actions@github.com" git tag ${{ steps.read_version.outputs.tag }} git push origin ${{ steps.read_version.outputs.tag }} - name: Copy Release to Versioned File run: | cp ./output/spearhead.lua ./output/spearhead.${{ steps.read_version.outputs.tag }}.lua echo "Versioned file created: spearhead.${{ steps.read_version.outputs.tag }}.lua" - name: Create Release and Upload Assets uses: akkuman/gitea-release-action@v1 with: tag_name: ${{ steps.read_version.outputs.tag }} name: Release ${{ steps.read_version.outputs.tag }} body: ${{ steps.release_notes.outputs.body }} prerelease: true files: |- ./output/spearhead.lua ./output/spearhead.${{ steps.read_version.outputs.tag }}.lua #token: ${{ secrets.GITHUB_TOKEN }} env: NODE_OPTIONS: '--experimental-fetch' - name: Announce Release uses: tsickert/discord-webhook@v7.0.0 with: webhook-url: ${{ secrets.WEBHOOK_URL }} content: "New Beta Release" username: "Spearhead Release Bot" #TODO: avatar-url spearhead avatar thread-id: 1538520488442331227 embed-title: "Spearhead Release Beta" embed-color: 3093247 embed-description: ${{ steps.release_notes.outputs.body }} embed-url: https://git.dutchie031.com/Spearhead/spearhead/releases/tag/${{ steps.read_version.outputs.tag }}