xref: /plugin/skillforge/.github/workflows/release.yml (revision fdc4b28e711e8bea38d0e06710edbc2bc4fc6e47)
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
11*fdc4b28eSHenrik Yllemo    permissions:
12*fdc4b28eSHenrik 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: |
20*fdc4b28eSHenrik Yllemo          PLUGIN_VERSION=$(grep "^version" plugin.info.txt | cut -d' ' -f2)
21*fdc4b28eSHenrik Yllemo          BUILD_DATE=$(date +%Y%m%d.%H%M%S)
22*fdc4b28eSHenrik Yllemo          TAG="v${PLUGIN_VERSION}-${BUILD_DATE}"
23*fdc4b28eSHenrik Yllemo          echo "version=${PLUGIN_VERSION}" >> $GITHUB_OUTPUT
2412fa7ce0SHenrik Yllemo          echo "tag=${TAG}" >> $GITHUB_OUTPUT
25*fdc4b28eSHenrik 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
3412fa7ce0SHenrik Yllemo          # Create ZIP archive
35*fdc4b28eSHenrik Yllemo          FILENAME="skillforge-${{ steps.plugin-info.outputs.version }}.zip"
36*fdc4b28eSHenrik Yllemo          zip -r "$FILENAME" skillforge-package/
37*fdc4b28eSHenrik Yllemo          ls -lh "$FILENAME"
38*fdc4b28eSHenrik Yllemo          echo "RELEASE_FILE=$FILENAME" >> $GITHUB_ENV
39*fdc4b28eSHenrik Yllemo      2
4012fa7ce0SHenrik Yllemo        with:
4112fa7ce0SHenrik Yllemo          tag_name: ${{ steps.plugin-info.outputs.tag }}
42*fdc4b28eSHenrik Yllemo          name: SkillForge ${{ steps.plugin-info.outputs.version }}
4312fa7ce0SHenrik Yllemo          body: |
4412fa7ce0SHenrik Yllemo            ## SkillForge DokuWiki Plugin
4512fa7ce0SHenrik Yllemo
4612fa7ce0SHenrik Yllemo            **Version:** ${{ steps.plugin-info.outputs.version }}
4712fa7ce0SHenrik Yllemo
4812fa7ce0SHenrik Yllemo            ### Installation
4912fa7ce0SHenrik Yllemo
5012fa7ce0SHenrik Yllemo            1. Download the `skillforge-${{ steps.plugin-info.outputs.version }}.zip` file below
5112fa7ce0SHenrik Yllemo            2. Extract it in your DokuWiki plugins directory: `lib/plugins/`
5212fa7ce0SHenrik Yllemo            3. Go to Admin → SkillForge to configure
5312fa7ce0SHenrik Yllemo
5412fa7ce0SHenrik Yllemo            ### What's included
5512fa7ce0SHenrik Yllemo            - Plugin core files (action.php, admin.php, helper.php, syntax.php)
5612fa7ce0SHenrik Yllemo            - Configuration templates (conf/)
5712fa7ce0SHenrik Yllemo            - Language files (lang/)
5812fa7ce0SHenrik Yllemo            - Documentation (README.md, CHANGELOG.md)
5912fa7ce0SHenrik Yllemo          files: |
60*fdc4b28eSHenrik Yllemo            ${{ env.RELEASE_FILE }}
61*fdc4b28eSHenrik Yllemo          files: |
6212fa7ce0SHenrik Yllemo            skillforge-${{ steps.plugin-info.outputs.version }}.zip
6312fa7ce0SHenrik Yllemo          draft: false
6412fa7ce0SHenrik Yllemo          prerelease: false
6512fa7ce0SHenrik Yllemo        env:
6612fa7ce0SHenrik Yllemo          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
67