add GitHub Actions workflow for automatic versioning and packaging of… #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Auto Version & Package VofM Release | |
| on: | |
| push: | |
| branches: | |
| - prod | |
| jobs: | |
| version-and-release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Get latest tag | |
| id: get_tag | |
| run: | | |
| latest_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo "v2.1.0") | |
| echo "latest_tag=$latest_tag" >> $GITHUB_ENV | |
| - name: Bump patch version and create new tag | |
| id: bump_tag | |
| run: | | |
| old_tag=${{ env.latest_tag }} | |
| base=${old_tag#v} | |
| major=$(echo $base | cut -d. -f1) | |
| minor=$(echo $base | cut -d. -f2) | |
| patch=$(echo $base | cut -d. -f3) | |
| new_patch=$((patch+1)) | |
| new_tag="v${major}.${minor}.${new_patch}" | |
| git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
| git config --global user.name "github-actions[bot]" | |
| git tag $new_tag | |
| git push origin $new_tag | |
| echo "new_tag=$new_tag" >> $GITHUB_ENV | |
| - name: Set up zip | |
| run: sudo apt-get install -y zip | |
| - name: Prepare package folders | |
| run: | | |
| mkdir -p VofM_Package/Dashboard | |
| mkdir -p VofM_Package/OBS_Overlays | |
| mkdir -p VofM_Package/Streamer.Bot_Actions | |
| - name: Copy Dashboard files | |
| run: cp -r Dashboard/* VofM_Package/Dashboard/ | |
| - name: Copy OBS Overlay files | |
| run: cp -r OBS_Overlays/* VofM_Package/OBS_Overlays/ | |
| - name: Copy latest .lra file | |
| run: cp Streamer.Bot_Actions/Viewer\ Of\ The\ Month.lra VofM_Package/Streamer.Bot_Actions/ | |
| - name: Generate dynamic release.md | |
| run: | | |
| echo "# VofM Release Package" > VofM_Package/release.md | |
| echo "" >> VofM_Package/release.md | |
| echo "This release contains the following components, packaged for easy setup:" >> VofM_Package/release.md | |
| echo "" >> VofM_Package/release.md | |
| echo "## Included in the Zip" >> VofM_Package/release.md | |
| echo "" >> VofM_Package/release.md | |
| echo "- **Dashboard/**" >> VofM_Package/release.md | |
| ls VofM_Package/Dashboard | sed 's/^/ - /' >> VofM_Package/release.md | |
| echo "- **OBS_Overlays/**" >> VofM_Package/release.md | |
| ls VofM_Package/OBS_Overlays | sed 's/^/ - /' >> VofM_Package/release.md | |
| echo "- **Streamer.Bot_Actions/**" >> VofM_Package/release.md | |
| ls VofM_Package/Streamer.Bot_Actions | sed 's/^/ - /' >> VofM_Package/release.md | |
| if [ -d VofM_Package/Streamer.Bot_Actions/Src ]; then | |
| echo " - Src/" >> VofM_Package/release.md | |
| ls VofM_Package/Streamer.Bot_Actions/Src | sed 's/^/ - /' >> VofM_Package/release.md | |
| fi | |
| echo "" >> VofM_Package/release.md | |
| echo "## How to Use" >> VofM_Package/release.md | |
| echo "" >> VofM_Package/release.md | |
| echo "1. Unzip the package." >> VofM_Package/release.md | |
| echo "2. Open \`Dashboard/dashboard.html\` in your browser to view the dashboard." >> VofM_Package/release.md | |
| echo "3. Import \`Streamer.Bot_Actions/Viewer Of The Month.lra\` into Streamer.Bot for instant setup." >> VofM_Package/release.md | |
| echo "4. Add overlays from \`OBS_Overlays/\` to OBS as browser sources." >> VofM_Package/release.md | |
| echo "" >> VofM_Package/release.md | |
| echo "## Changes in This Release" >> VofM_Package/release.md | |
| echo "" >> VofM_Package/release.md | |
| echo "- Release version: ${{ env.new_tag }}" >> VofM_Package/release.md | |
| echo "- See commit history for detailed changes." >> VofM_Package/release.md | |
| echo "" >> VofM_Package/release.md | |
| echo "---" >> VofM_Package/release.md | |
| echo "" >> VofM_Package/release.md | |
| echo "For full documentation, see the main \`README.md\` in the repository." >> VofM_Package/release.md | |
| - name: Zip the package | |
| run: zip -r VofM_Release_${{ env.new_tag }}.zip VofM_Package | |
| - name: Upload release artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: VofM_Release | |
| path: VofM_Release_${{ env.new_tag }}.zip | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: | | |
| VofM_Release_${{ env.new_tag }}.zip | |
| VofM_Package/release.md | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |