Release #115
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| workflow_dispatch: | |
| jobs: | |
| matrix: | |
| name: Find layers | |
| runs-on: ubuntu-latest | |
| if: ${{ github.actor != 'bref-bot' }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| # Only find layers that have changed since last tag | |
| - id: find-layers | |
| run: | | |
| git fetch --prune --unshallow | |
| echo "::set-output name=list::$(git diff --name-only HEAD $(git describe --tags --abbrev=0) | grep layers/ | cut -d / -f 2 | sort | uniq | jq -R -s -c 'split("\n")[:-1]')" | |
| outputs: | |
| # Make the outputs accessible outside this job | |
| list: ${{ steps.find-layers.outputs.list }} | |
| build: | |
| needs: matrix | |
| name: Build & publish layer | |
| runs-on: ubuntu-latest | |
| if: ${{ github.actor != 'bref-bot' }} | |
| env: | |
| DOCKER_BUILDKIT: '1' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| layer: ${{ fromJson(needs.matrix.outputs.list) }} | |
| steps: | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: 8.2 | |
| coverage: none | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Download dependencies | |
| run: composer update --no-interaction --prefer-dist --optimize-autoloader --prefer-stable | |
| - name: Clean export directory | |
| run: make clean | |
| - name: Build layers | |
| run: layer=${{ matrix.layer }} make layers | |
| - name: Publish layers | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_SECRET }} | |
| run: php ./bref-extra publish | |
| release: | |
| needs: build | |
| name: Update layers and release | |
| runs-on: ubuntu-latest | |
| if: ${{ github.actor != 'bref-bot' }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Download dependencies | |
| run: composer update --no-interaction --prefer-dist --optimize-autoloader --prefer-stable | |
| - name: List layers | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_SECRET }} | |
| run: php ./bref-extra list | |
| - name: Get next version | |
| id: version | |
| run: | | |
| LATEST=$(git describe --tags --abbrev=0) | |
| MAJOR=$(echo $LATEST | cut -d. -f1) | |
| MINOR=$(echo $LATEST | cut -d. -f2) | |
| PATCH=$(echo $LATEST | cut -d. -f3) | |
| echo "version=$MAJOR.$MINOR.$((PATCH + 1))" >> $GITHUB_OUTPUT | |
| - name: Commit changes | |
| run: | | |
| git config --local user.email "github-bot@bref.sh" | |
| git config --local user.name "Bref Bot" | |
| git add layers.json | |
| git commit -m "Update layer versions" | |
| - name: Push changes | |
| uses: ad-m/github-push-action@master | |
| with: | |
| github_token: ${{ secrets.BOT_GITHUB_TOKEN }} | |
| branch: master | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ steps.version.outputs.version }} | |
| generate_release_notes: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }} | |