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