From 5daa17f7b27538a8046d08dd33d8656feb011185 Mon Sep 17 00:00:00 2001 From: Jean-Christian Paul Denis Date: Sun, 1 Dec 2024 09:37:12 +0100 Subject: [PATCH] Create release.yml --- .github/workflows/release.yml | 142 ++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..cdb5306 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,142 @@ +name: Release package +on: + push: + workflow_dispatch: + +env: + DC_TYPE: plugin + DC_MIN: 2.32 + +# required to set secrets in +# https://github.com/xxx/xxx/settings/secrets/actions +# TELEGRAM_ID, TELEGRAM_TOKEN + +jobs: + check_release: + if: (contains(github.event.head_commit.message, 'release') || (github.event_name != 'push')) + runs-on: ubuntu-latest + outputs: + version: ${{ steps.dotclear.outputs.version }} + dcmin: ${{ steps.dotclear.outputs.dcmin }} + exists: ${{ steps.repository.outputs.release-exists }} + steps: + - name: Checkout repository master branch + uses: actions/checkout@master + + # Parser from https://github.com/franck-paul + - name: Run PHP code + id: dotclear + shell: php {0} + run: | + > $GITHUB_OUTPUT + + # Parser from https://github.com/franck-paul + - name: Read dcstore + id: readstore + shell: php {0} + run: | + (.*?)<\/version>/s',"${{ needs.check_release.outputs.version }}",$ds); + $ds = preg_replace('/(.*?)<\/file>/s',"${{ steps.download.outputs.download-url }}",$ds); + $ds = preg_replace('/(.*?)<\/da:dcmin>/s',"${{ needs.check_release.outputs.dcmin }}",$ds); + if ($ds) { + file_put_contents('dcstore.xml',$ds); + } + } + } + + - name: Write dcstore + id: writestore + shell: bash + run: | + test=$(git diff --name-only -- dcstore.xml) + if [[ "$test" != "" ]]; then + echo "dcstore.xml modified, need to be commit" + git config user.name "${{ github.actor }}" + git config user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" + git add dcstore.xml + git commit -m "Update dcstore.xml" + git push + else + echo "dcstore.xml not modified" + fi + + - name: Create archive + id: writearchive + uses: thedoctor0/zip-release@0.7.6 + with: + type: 'zip' + directory: .. + path: '${{ steps.repository.outputs.repository-name }}' + filename: '${{ env.DC_TYPE }}-${{ steps.repository.outputs.repository-name }}.zip' + exclusions: '*.git* /*node_modules/* .editorconfig' + + - name: Create release with archive + id: writerelease + uses: ncipollo/release-action@v1.14.0 + with: + artifacts: '../${{ env.DC_TYPE }}-${{ steps.repository.outputs.repository-name }}.zip' + token: ${{ secrets.GITHUB_TOKEN }} + commit: master + draft: false + prerelease: false + generateReleaseNotes: true + name: ${{ steps.repository.outputs.repository-name }} ${{ needs.check_release.outputs.version }} + tag: 'v${{ needs.check_release.outputs.version }}' + + - name: Send Telegram Message Ok + uses: appleboy/telegram-action@v1.0.0 + with: + to: ${{ secrets.TELEGRAM_ID }} + token: ${{ secrets.TELEGRAM_TOKEN }} + format: markdown + message: | + __Github workflow run__ + - Trigger: ${{ github.event_name }} + - Release: ${{ steps.repository.outputs.repository-name }} ${{ needs.check_release.outputs.version }} + - Download URL: ${{ steps.download.outputs.download-url }}