diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml new file mode 100644 index 0000000..eb2ec94 --- /dev/null +++ b/.github/workflows/release-tag.yml @@ -0,0 +1,61 @@ +name: Build & Draft Release + +on: + push: + tags: + - '*.*.*' + +jobs: + build-and-release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, dom, filter, gd, iconv, json, mbstring, pdo + + - name: Install PHP dependencies + run: composer install --no-ansi --no-dev --no-interaction --no-plugins --no-progress --optimize-autoloader + + - name: Prepare repository in a single folder with repository name + run: | + mkdir -p ./release/${{ github.event.repository.name }} + rsync -av --progress ./ ./release/${{ github.event.repository.name }} --exclude release --exclude .git --exclude node_modules --exclude tests --exclude .github + + - name: Create zip archive + run: | + cd release + zip -r plugin.zip ./${{ github.event.repository.name }} + ls -l plugin.zip + if [ ! -f plugin.zip ]; then + echo "Error: plugin.zip was not created" + exit 1 + fi + + - name: Create Release + id: create_release + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref_name }} + name: ${{ github.ref_name }} + draft: true + prerelease: false + generate_release_notes: true + + + - name: Upload Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./release/plugin.zip + asset_name: ${{github.event.repository.name}}-${{ github.ref_name }}.zip + asset_content_type: application/zip