xref: /plugin/skillforge/.github/workflows/release.yml (revision b2a49f3b3fc9e4237528324740647c54125d68ef)
112fa7ce0SHenrik Yllemoname: Build and Release Plugin
212fa7ce0SHenrik Yllemo
312fa7ce0SHenrik Yllemoon:
412fa7ce0SHenrik Yllemo  push:
512fa7ce0SHenrik Yllemo    branches:
612fa7ce0SHenrik Yllemo      - main
712fa7ce0SHenrik Yllemo
812fa7ce0SHenrik Yllemojobs:
912fa7ce0SHenrik Yllemo  build-release:
1012fa7ce0SHenrik Yllemo    runs-on: ubuntu-latest
11fdc4b28eSHenrik Yllemo    permissions:
12fdc4b28eSHenrik Yllemo      contents: write
1312fa7ce0SHenrik Yllemo
1412fa7ce0SHenrik Yllemo    steps:
1512fa7ce0SHenrik Yllemo      - uses: actions/checkout@v4
1612fa7ce0SHenrik Yllemo
1712fa7ce0SHenrik Yllemo      - name: Extract plugin name and version
1812fa7ce0SHenrik Yllemo        id: plugin-info
1912fa7ce0SHenrik Yllemo        run: |
20fdc4b28eSHenrik Yllemo          PLUGIN_VERSION=$(grep "^version" plugin.info.txt | cut -d' ' -f2)
21fdc4b28eSHenrik Yllemo          BUILD_DATE=$(date +%Y%m%d.%H%M%S)
22fdc4b28eSHenrik Yllemo          TAG="v${PLUGIN_VERSION}-${BUILD_DATE}"
23fdc4b28eSHenrik Yllemo          echo "version=${PLUGIN_VERSION}" >> $GITHUB_OUTPUT
2412fa7ce0SHenrik Yllemo          echo "tag=${TAG}" >> $GITHUB_OUTPUT
25fdc4b28eSHenrik Yllemo          echo "Plugin Version: ${PLUGIN_VERSION}, Tag: ${TAG}"
2612fa7ce0SHenrik Yllemo
2712fa7ce0SHenrik Yllemo      - name: Create plugin package
2812fa7ce0SHenrik Yllemo        run: |
2912fa7ce0SHenrik Yllemo          mkdir -p skillforge-package
3012fa7ce0SHenrik Yllemo          # Copy all plugin files except git-related and excluded files
3112fa7ce0SHenrik Yllemo          cp -r action.php admin.php helper.php syntax.php plugin.info.txt README.md LICENSE CHANGELOG.md style.css skillforge-package/
3212fa7ce0SHenrik Yllemo          cp -r classes/ conf/ lang/ skillforge-package/
3312fa7ce0SHenrik Yllemo
34*b2a49f3bSHenrik Yllemo          # Create ZIP archive with files at root level
35*b2a49f3bSHenrik Yllemo          cd skillforge-package
36*b2a49f3bSHenrik Yllemo          zip -r "../skillforge-${{ steps.plugin-info.outputs.version }}.zip" .
37*b2a49f3bSHenrik Yllemo          cd ..
38*b2a49f3bSHenrik Yllemo          ls -lh skillforge-*.zip
39*b2a49f3bSHenrik Yllemo          echo "RELEASE_FILE=skillforge-${{ steps.plugin-info.outputs.version }}.zip" >> $GITHUB_ENV
40cc7d7d43SHenrik Yllemo
41cc7d7d43SHenrik Yllemo      - name: Create Release
42cc7d7d43SHenrik Yllemo        uses: softprops/action-gh-release@v2
4312fa7ce0SHenrik Yllemo        with:
4412fa7ce0SHenrik Yllemo          tag_name: ${{ steps.plugin-info.outputs.tag }}
45fdc4b28eSHenrik Yllemo          name: SkillForge ${{ steps.plugin-info.outputs.version }}
4612fa7ce0SHenrik Yllemo          body: |
4712fa7ce0SHenrik Yllemo            ## SkillForge DokuWiki Plugin
4812fa7ce0SHenrik Yllemo
4912fa7ce0SHenrik Yllemo            **Version:** ${{ steps.plugin-info.outputs.version }}
5012fa7ce0SHenrik Yllemo
5112fa7ce0SHenrik Yllemo            ### Installation
5212fa7ce0SHenrik Yllemo
5312fa7ce0SHenrik Yllemo            1. Download the `skillforge-${{ steps.plugin-info.outputs.version }}.zip` file below
5412fa7ce0SHenrik Yllemo            2. Extract it in your DokuWiki plugins directory: `lib/plugins/`
5512fa7ce0SHenrik Yllemo            3. Go to Admin → SkillForge to configure
5612fa7ce0SHenrik Yllemo
5712fa7ce0SHenrik Yllemo            ### What's included
5812fa7ce0SHenrik Yllemo            - Plugin core files (action.php, admin.php, helper.php, syntax.php)
5912fa7ce0SHenrik Yllemo            - Configuration templates (conf/)
6012fa7ce0SHenrik Yllemo            - Language files (lang/)
6112fa7ce0SHenrik Yllemo            - Documentation (README.md, CHANGELOG.md)
6212fa7ce0SHenrik Yllemo          files: |
63fdc4b28eSHenrik Yllemo            ${{ env.RELEASE_FILE }}
6412fa7ce0SHenrik Yllemo          draft: false
6512fa7ce0SHenrik Yllemo          prerelease: false
6612fa7ce0SHenrik Yllemo        env:
6712fa7ce0SHenrik Yllemo          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
68