# This workflow will run release using node and then publish a package to GitHub Packages when a release is created # For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages name: Sportsmanager Release on: push: tags: - 'v[0-9]+.[0-9]+.[0-9]+' # run only on version tags like v1.0.0 jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: ref: sportsmanager2-prod - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: Install npm dependencies run: npm ci - name: Get version from git tag run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - name: Set DATE run: echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - name: Update version.php run: | echo " src/structure/components/com_sportsmanager/util/version.php echo "defined('_JEXEC') or die;" >> src/structure/components/com_sportsmanager/util/version.php echo "return [" >> src/structure/components/com_sportsmanager/util/version.php echo " 'version' => '${{ env.VERSION }}'," >> src/structure/components/com_sportsmanager/util/version.php echo " 'date' => '$(date +%F)'," >> src/structure/components/com_sportsmanager/util/version.php echo "];" >> src/structure/components/com_sportsmanager/util/version.php echo "Updating version to $VERSION in sportsmanager.xml" sed -i "s#.*#$VERSION#" src/structure/sportsmanager.xml echo "Updating Date to $DATE in sportsmanager.xml" sed -i "s#.*#$DATE#" src/structure/sportsmanager.xml - name: Generate release notes id: release_notes_extension uses: release-drafter/release-drafter@v6 with: config-name: release-drafter_extension.yml version: ${{ github.ref_name }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Save release notes to file run: | echo "${{ steps.release_notes_extension.outputs.body }}" > RELEASE_NOTES.md - name: Run build script run: npm run release - name: Generate release notes id: release_notes_github uses: release-drafter/release-drafter@v6 with: config-name: release-drafter_github.yml env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Save release notes to file run: | echo "${{ steps.release_notes_github.outputs.body }}" > RELEASE_NOTES.md - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: tag_name: "${{ github.ref_name }}" name: "Release ${{ github.ref_name }}" files: package/packages/com_sportsmanager.zip body_path: "RELEASE_NOTES.md" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Delete draft release via API # workaround: remove leftover draft by release-drafter env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} REPO: ${{ github.repository }} run: | drafts=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \ https://api.github.com/repos/$REPO/releases | jq '.[] | select(.draft == true)') if [ -n "$drafts" ]; then id=$(echo "$drafts" | jq -r '.id') curl -s -X DELETE -H "Authorization: token $GITHUB_TOKEN" \ https://api.github.com/repos/$REPO/releases/$id echo "Deleted draft release with ID: $id" else echo "No draft releases found" fi