Release #127
This file contains 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: | |
push: | |
tags: | |
- "[0-9]+.[0-9]+.[0-9]+*" | |
workflow_dispatch: | |
inputs: | |
dry_run: | |
description: 'Dry run (no actual publish)' | |
required: false | |
type: boolean | |
default: false | |
env: | |
DEVELOPER_DIR: /Applications/Xcode_15.4.app/Contents/Developer | |
FLUTTER_VERSION: 3.24.3 | |
JAVA_VERSION: "17.x" | |
JAVA_DISTRIBUTION: 'zulu' | |
jobs: | |
ci: | |
runs-on: macos-14-xlarge | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-java@v2 | |
with: | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
java-version: ${{ env.JAVA_VERSION }} | |
- uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 | |
with: | |
flutter-version: ${{env.FLUTTER_VERSION}} | |
- name: Run CI | |
run: bash ./scripts/run_ci_tasks.sh | |
prepare-release: | |
runs-on: ubuntu-latest | |
needs: [ ci ] | |
outputs: | |
version: ${{ steps.get_version.outputs.VERSION }} | |
release_notes: ${{ steps.get_release_notes.outputs.NOTES }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get the version | |
id: get_version | |
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT | |
- name: Get the release notes | |
id: get_release_notes | |
env: | |
VERSION: ${{ steps.get_version.outputs.VERSION }} | |
run: | | |
delimiter="$(openssl rand -hex 8)" | |
{ | |
echo "NOTES<<${delimiter}" | |
awk "/## Version $VERSION/{flag=1;next}/## Version/{flag=0}flag" CHANGELOG.md | |
echo ${delimiter} | |
} >> $GITHUB_OUTPUT | |
publish: | |
needs: [ prepare-release ] | |
if: ${{ !inputs.dry_run }} | |
permissions: | |
id-token: write # Required for authentication using OIDC | |
uses: dart-lang/setup-dart/.github/workflows/publish.yml@v1 | |
with: | |
working-directory: . | |
publish-check: | |
needs: [ prepare-release ] | |
if: ${{ inputs.dry_run }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dart-lang/setup-dart@v1 | |
- name: Install dependencies | |
run: dart pub get | |
- name: Publish dry run | |
run: dart pub publish --dry-run | |
create-github-release: | |
runs-on: ubuntu-latest | |
needs: [ prepare-release, publish ] | |
if: ${{ !inputs.dry_run }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Github Release | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ needs.prepare-release.outputs.version }} | |
release_name: ${{ needs.prepare-release.outputs.version }} | |
body: ${{ needs.prepare-release.outputs.NOTES }} | |
draft: false | |
prerelease: false | |
- name: Slack Notification | |
uses: homoluctus/slatify@master | |
if: failure() | |
with: | |
type: ${{ job.status }} | |
job_name: "Failed to release Flutter :(" | |
url: ${{ secrets.MOBILE_SLACK_WEBHOOK }} | |
release-docs: | |
runs-on: macos-14-xlarge | |
needs: [ publish ] | |
if: ${{ !inputs.dry_run }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get the version | |
id: get_version | |
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT | |
- uses: actions/setup-java@v2 | |
with: | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Flutter action | |
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
- name: Setup GCP Auth | |
uses: google-github-actions/auth@v2 | |
with: | |
credentials_json: ${{ secrets.GCP_SA_KEY }} | |
- name: Set up Cloud SDK | |
uses: google-github-actions/setup-gcloud@v2 | |
- name: Build & Package docs | |
run: | | |
VERSION=${{ steps.get_version.outputs.VERSION }} | |
flutter pub get | |
bash ./scripts/docs.sh -gp $VERSION doc/api | |
- name: Upload docs | |
env: | |
VERSION: ${{ steps.get_version.outputs.VERSION }} | |
run: | | |
gsutil cp doc/$VERSION.tar.gz gs://ua-web-ci-prod-docs-transfer/libraries/flutter/$VERSION.tar.gz | |
- name: Slack Notification | |
uses: homoluctus/slatify@master | |
with: | |
type: ${{ job.status }} | |
job_name: ":raised_hands: Airship Flutter Plugin Released! :raised_hands:" | |
url: ${{ secrets.MOBILE_SLACK_WEBHOOK }} |