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 40 - name: Create Release 41 uses: softprops/action-gh-release@v2 42 with: 43 tag_name: ${{ steps.plugin-info.outputs.tag }} 44 name: SkillForge ${{ steps.plugin-info.outputs.version }} 45 body: | 46 ## SkillForge DokuWiki Plugin 47 48 **Version:** ${{ steps.plugin-info.outputs.version }} 49 50 ### Installation 51 52 1. Download the `skillforge-${{ steps.plugin-info.outputs.version }}.zip` file below 53 2. Extract it in your DokuWiki plugins directory: `lib/plugins/` 54 3. Go to Admin → SkillForge to configure 55 56 ### What's included 57 - Plugin core files (action.php, admin.php, helper.php, syntax.php) 58 - Configuration templates (conf/) 59 - Language files (lang/) 60 - Documentation (README.md, CHANGELOG.md) 61 files: | 62 ${{ env.RELEASE_FILE }} 63 draft: false 64 prerelease: false 65 env: 66 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 67