xref: /plugin/skillforge/.github/workflows/release.yml (revision 12fa7ce06de4829ce464095e917e18197b9d4bba)
1*12fa7ce0SHenrik Yllemoname: Build and Release Plugin
2*12fa7ce0SHenrik Yllemo
3*12fa7ce0SHenrik Yllemoon:
4*12fa7ce0SHenrik Yllemo  push:
5*12fa7ce0SHenrik Yllemo    branches:
6*12fa7ce0SHenrik Yllemo      - main
7*12fa7ce0SHenrik Yllemo
8*12fa7ce0SHenrik Yllemojobs:
9*12fa7ce0SHenrik Yllemo  build-release:
10*12fa7ce0SHenrik Yllemo    runs-on: ubuntu-latest
11*12fa7ce0SHenrik Yllemo
12*12fa7ce0SHenrik Yllemo    steps:
13*12fa7ce0SHenrik Yllemo      - uses: actions/checkout@v4
14*12fa7ce0SHenrik Yllemo
15*12fa7ce0SHenrik Yllemo      - name: Extract plugin name and version
16*12fa7ce0SHenrik Yllemo        id: plugin-info
17*12fa7ce0SHenrik Yllemo        run: |
18*12fa7ce0SHenrik Yllemo          BASE=$(grep "^base" plugin.info.txt | cut -d' ' -f2)
19*12fa7ce0SHenrik Yllemo          DATE=$(date +%Y%m%d_%H%M%S)
20*12fa7ce0SHenrik Yllemo          VERSION=$(grep "^date" plugin.info.txt | cut -d' ' -f2)
21*12fa7ce0SHenrik Yllemo          TAG="${BASE}_${VERSION}_${DATE}"
22*12fa7ce0SHenrik Yllemo          echo "base=${BASE}" >> $GITHUB_OUTPUT
23*12fa7ce0SHenrik Yllemo          echo "version=${VERSION}" >> $GITHUB_OUTPUT
24*12fa7ce0SHenrik Yllemo          echo "tag=${TAG}" >> $GITHUB_OUTPUT
25*12fa7ce0SHenrik Yllemo          echo "Plugin: ${BASE}, Version: ${VERSION}, Tag: ${TAG}"
26*12fa7ce0SHenrik Yllemo
27*12fa7ce0SHenrik Yllemo      - name: Create plugin package
28*12fa7ce0SHenrik Yllemo        run: |
29*12fa7ce0SHenrik Yllemo          mkdir -p skillforge-package
30*12fa7ce0SHenrik Yllemo          # Copy all plugin files except git-related and excluded files
31*12fa7ce0SHenrik Yllemo          cp -r action.php admin.php helper.php syntax.php plugin.info.txt README.md LICENSE CHANGELOG.md style.css skillforge-package/
32*12fa7ce0SHenrik Yllemo          cp -r classes/ conf/ lang/ skillforge-package/
33*12fa7ce0SHenrik Yllemo
34*12fa7ce0SHenrik Yllemo          # Create ZIP archive
35*12fa7ce0SHenrik Yllemo          zip -r skillforge-${{ steps.plugin-info.outputs.version }}.zip skillforge-package/
36*12fa7ce0SHenrik Yllemo          ls -lh skillforge-*.zip
37*12fa7ce0SHenrik Yllemo
38*12fa7ce0SHenrik Yllemo      - name: Create Release
39*12fa7ce0SHenrik Yllemo        uses: softprops/action-gh-release@v1
40*12fa7ce0SHenrik Yllemo        with:
41*12fa7ce0SHenrik Yllemo          tag_name: ${{ steps.plugin-info.outputs.tag }}
42*12fa7ce0SHenrik Yllemo          name: SkillForge Release ${{ steps.plugin-info.outputs.version }}
43*12fa7ce0SHenrik Yllemo          body: |
44*12fa7ce0SHenrik Yllemo            ## SkillForge DokuWiki Plugin
45*12fa7ce0SHenrik Yllemo
46*12fa7ce0SHenrik Yllemo            **Version:** ${{ steps.plugin-info.outputs.version }}
47*12fa7ce0SHenrik Yllemo            **Base:** ${{ steps.plugin-info.outputs.base }}
48*12fa7ce0SHenrik Yllemo
49*12fa7ce0SHenrik Yllemo            ### Installation
50*12fa7ce0SHenrik Yllemo
51*12fa7ce0SHenrik Yllemo            1. Download the `skillforge-${{ steps.plugin-info.outputs.version }}.zip` file below
52*12fa7ce0SHenrik Yllemo            2. Extract it in your DokuWiki plugins directory: `lib/plugins/`
53*12fa7ce0SHenrik Yllemo            3. Go to Admin → SkillForge to configure
54*12fa7ce0SHenrik Yllemo
55*12fa7ce0SHenrik Yllemo            ### What's included
56*12fa7ce0SHenrik Yllemo            - Plugin core files (action.php, admin.php, helper.php, syntax.php)
57*12fa7ce0SHenrik Yllemo            - Configuration templates (conf/)
58*12fa7ce0SHenrik Yllemo            - Language files (lang/)
59*12fa7ce0SHenrik Yllemo            - Documentation (README.md, CHANGELOG.md)
60*12fa7ce0SHenrik Yllemo          files: |
61*12fa7ce0SHenrik Yllemo            skillforge-${{ steps.plugin-info.outputs.version }}.zip
62*12fa7ce0SHenrik Yllemo          draft: false
63*12fa7ce0SHenrik Yllemo          prerelease: false
64*12fa7ce0SHenrik Yllemo        env:
65*12fa7ce0SHenrik Yllemo          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
66