diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..cbb6183 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,84 @@ +name: Create Release + +on: # zizmor: ignore[concurrency-limits] + workflow_dispatch: + inputs: + version: + description: 'Release version (e.g. 3.7.0)' + required: true + type: string + +permissions: {} + +jobs: + release: + name: Create Release + runs-on: ubuntu-latest + environment: Releases + permissions: {} # all writes go through the App token; GITHUB_TOKEN needs no scopes + steps: + - name: Resolve and validate version + env: + INPUT_VERSION: ${{ inputs.version }} + BRANCH: ${{ github.ref_name }} + run: | + version="${INPUT_VERSION#v}" + + if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.]+)?$ ]]; then + echo "::error::Version must look like 3.7.0 (got: $INPUT_VERSION)" + exit 1 + fi + + if [[ "$BRANCH" =~ ^[0-9]+\.x$ ]] && [ "${version%%.*}" != "${BRANCH%%.*}" ]; then + echo "::error::Version $version does not belong on the $BRANCH branch" + exit 1 + fi + + echo "TAG=$version" >> "$GITHUB_ENV" + + - name: Get release bot token + id: app-token + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 + with: + client-id: ${{ secrets.RELEASE_APP_CLIENT_ID }} + private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }} + permission-contents: write + + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + token: ${{ steps.app-token.outputs.token }} + persist-credentials: true # zizmor: ignore[artipacked] App token is needed to push the tag + + - name: Assert tag does not already exist + run: | + existing="$(git ls-remote --tags origin "$TAG")" + [ -z "$existing" ] || { echo "::error::Tag $TAG already exists on remote. Aborting."; exit 1; } + + - name: Tag and push + run: | + git tag "$TAG" + git push origin "$TAG" + + - name: Get Changelog + id: changelog + uses: statamic/changelog-action@5d112d0d790cdeeb5adca3e584e37edc474ab51b # v1.0.2 + with: + version: ${{ env.TAG }} + + - name: Create release + env: + GH_TOKEN: ${{ steps.app-token.outputs.token }} + RELEASE_NOTES: ${{ steps.changelog.outputs.text }} + IS_DEFAULT_BRANCH: ${{ github.ref_name == github.event.repository.default_branch }} + run: | + latest="$IS_DEFAULT_BRANCH" + prerelease=false + case "$TAG" in + *-*) prerelease=true; latest=false ;; + esac + gh release create "$TAG" \ + --title "$TAG" \ + --notes "$RELEASE_NOTES" \ + --latest="$latest" \ + --prerelease="$prerelease" diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d3d18c9 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,119 @@ +# Release Notes + +## 3.6.4 (2026-07-29) + +### What's new +- Ability to disable ASCII art [#107](https://github.com/statamic/cli/issues/107) by @edalzell + +### What's improved +- Check interactive session when enabling pro [#106](https://github.com/statamic/cli/issues/106) by @edalzell +- Swap `illuminate/support` for `illuminate/collections` [#109](https://github.com/statamic/cli/issues/109) by @CasEbb +- Zizmor [#105](https://github.com/statamic/cli/issues/105) by @jasonvarga + + + +## 3.6.3 (2026-03-17) + +### What's fixed +- Enable Pro before installing starter kit [#104](https://github.com/statamic/cli/issues/104) by @marcorieser + + + +## 3.6.2 (2026-02-23) + +### What's fixed +- Run migrations using `php artisan` [#102](https://github.com/statamic/cli/issues/102) by @duncanmcclean + + + +## 3.6.1 (2025-02-17) + +### What's fixed +- Add `illuminate/support` dependency [#97](https://github.com/statamic/cli/issues/97) by @duncanmcclean + + + +## 3.6.0 (2025-02-12) + +### What's new +- Support Symfony 7 [#95](https://github.com/statamic/cli/issues/95) by @duncanmcclean + + + +## 3.5.0 (2025-02-12) + +### What's new +- Support Laravel Prompts 0.2+ and 0.3+ [#94](https://github.com/statamic/cli/issues/94) by @duncanmcclean + + + +## 3.4.1 (2024-10-24) + +### What's fixed +- Don't enable tty if `no-interaction` option is true [#66](https://github.com/statamic/cli/issues/66) by @amiuhle + + + +## 3.4.0 (2024-10-24) + +### What's new +- Add email and password options [#89](https://github.com/statamic/cli/issues/89) by @jasonvarga +- Add default to the starter kit prompt [#90](https://github.com/statamic/cli/issues/90) by @jasonvarga + +### What's fixed +- Fix timeout on slow Composer commands [#87](https://github.com/statamic/cli/issues/87) by @duncanmcclean + + + +## 3.3.1 (2024-10-16) + +### What's improved +- Add GitHub create repo organization hint [#85](https://github.com/statamic/cli/issues/85) by @robdekort +- Pint [#86](https://github.com/statamic/cli/issues/86) by @jasonvarga + + + +## 3.3.0 (2024-10-15) + +### What's new +- Add "Flat Files or Database" prompt [#79](https://github.com/statamic/cli/issues/79) by @duncanmcclean +- Git support [#80](https://github.com/statamic/cli/issues/80) by @duncanmcclean +- Add Statamic Pro prompt [#82](https://github.com/statamic/cli/issues/82) by @duncanmcclean +- Replace addons prompt with SSG prompt [#83](https://github.com/statamic/cli/issues/83) by @duncanmcclean + +### What's improved +- UX improvements [#81](https://github.com/statamic/cli/issues/81) by @duncanmcclean +- Laravel Pint [#84](https://github.com/statamic/cli/issues/84) by @duncanmcclean + + + +## 3.2.0 (2024-05-10) + +### What's new +- Ask yes/no question before showing first-party addons multiselect [#75](https://github.com/statamic/cli/issues/75) by @duncanmcclean + + + +## 3.1.0 (2024-05-09) + +### What's new +- Ask about installing first-party addons [#71](https://github.com/statamic/cli/issues/71) by @duncanmcclean + +### What's fixed +- Make Starter Kit usage and license expiration more clear [#68](https://github.com/statamic/cli/issues/68) by @joshuablum +- Tweak "Cannot connect to [statamic.com]" message [#72](https://github.com/statamic/cli/issues/72) by @duncanmcclean + + + +## 3.0.1 (2023-08-14) + +### What's fixed +- Fix colors [#60](https://github.com/statamic/cli/issues/60) by @jasonvarga + + + +## 3.0.0 (2023-08-14) + +### What's new +- New UI/UX using Prompts [#59](https://github.com/statamic/cli/issues/59) by @jasonvarga +- PHP 8.1 is required