name: Release - Build and publish plugin releases on: push: tags: - 'v*' - 'v*-stable' jobs: build: name: Build and Release runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '7.4' extensions: mbstring, intl, zip tools: composer:v2 - name: Get tag name id: get_tag run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - name: Extract version from tag id: get_version run: | VERSION=$(echo ${{ env.TAG }} | sed 's/^v//' | sed 's/-stable$//') echo "VERSION=$VERSION" >> $GITHUB_ENV - name: Install dependencies run: | for i in 1 2 3; do composer install --no-dev --optimize-autoloader --prefer-dist && break echo "Composer install attempt $i failed, retrying in 15s..." sleep 15 done - name: Create build directory run: | mkdir -p build/wp-plugin-starter-template-for-ai-coding cp -R *.php README.md LICENSE CHANGELOG.md readme.txt composer.json build/wp-plugin-starter-template-for-ai-coding/ cp -R admin includes languages vendor build/wp-plugin-starter-template-for-ai-coding/ mkdir -p build/wp-plugin-starter-template-for-ai-coding/assets/banner build/wp-plugin-starter-template-for-ai-coding/assets/icon build/wp-plugin-starter-template-for-ai-coding/assets/screenshots if [ -d "assets/banner" ]; then cp -R assets/banner/* build/wp-plugin-starter-template-for-ai-coding/assets/banner/; fi if [ -d "assets/icon" ]; then cp -R assets/icon/* build/wp-plugin-starter-template-for-ai-coding/assets/icon/; fi if [ -d "assets/screenshots" ]; then cp -R assets/screenshots/* build/wp-plugin-starter-template-for-ai-coding/assets/screenshots/; fi - name: Create ZIP file run: | cd build zip -r ../wp-plugin-starter-template-for-ai-coding-${{ env.VERSION }}.zip wp-plugin-starter-template-for-ai-coding -x "*.DS_Store" -x "*.git*" cd .. - name: Extract changelog id: extract_changelog run: | CHANGELOG=$(grep -A 20 "#### \[${{ env.VERSION }}\]" CHANGELOG.md | sed -n '/####/,/####/p' | sed '$d') echo "CHANGELOG<> $GITHUB_ENV echo "$CHANGELOG" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV - name: Create Release id: create_release uses: softprops/action-gh-release@v1 with: files: wp-plugin-starter-template-for-ai-coding-${{ env.VERSION }}.zip name: v${{ env.VERSION }} - WordPress Plugin Starter Template draft: false prerelease: false body: | # WordPress Plugin Starter Template v${{ env.VERSION }} ${{ env.CHANGELOG }} [View full changelog](https://github.com/wpallstars/wp-plugin-starter-template-for-ai-coding/blob/main/CHANGELOG.md) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}