Skip to content

Release prep (#176) #87

Release prep (#176)

Release prep (#176) #87

Workflow file for this run

name: Release
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+*"
env:
DEVELOPER_DIR: /Applications/Xcode_14.0.app/Contents/Developer
FLUTTER_VERSION: 3.0.2
JAVA_VERSION: "12.x"
JAVA_DISTRIBUTION: 'zulu'
jobs:
ci:
runs-on: macos-12
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v2
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.JAVA_VERSION }}
- uses: subosito/flutter-action@d8687e6979e8ef66d2b2970e2c92c1d8e801d7bf
with:
flutter-version: ${{env.FLUTTER_VERSION}}
- name: Run CI
run: bash ./scripts/run_ci_tasks.sh
release-plugin:
runs-on: ubuntu-latest
needs: [ ci ]
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
- uses: actions/setup-java@v2
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.JAVA_VERSION }}
- name: Flutter action
uses: subosito/flutter-action@d8687e6979e8ef66d2b2970e2c92c1d8e801d7bf
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
- run: flutter pub get
- name: Setup pub credentials
run: |
mkdir -p ~/.pub-cache
cat <<EOF > ~/.pub-cache/credentials.json
{
"accessToken":"${{ secrets.OAUTH_ACCESS_TOKEN }}",
"refreshToken":"${{ secrets.OAUTH_REFRESH_TOKEN }}",
"tokenEndpoint":"https://accounts.google.com/o/oauth2/token",
"scopes": [ "openid", "https://www.googleapis.com/auth/userinfo.email" ],
"expiration": ${{secrets.OAUTH_EXPIRATION }}
}
EOF
cp ~/.pub-cache/credentials.json $PUB_CACHE/credentials.json
- name: Publish Dart/Flutter package
run: flutter pub publish -f
- name: Github Release
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.get_version.outputs.VERSION }}
release_name: ${{ steps.get_version.outputs.VERSION }}
body: ${{ steps.get_release_notes.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-12
needs: [ ci, release-plugin ]
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@d8687e6979e8ef66d2b2970e2c92c1d8e801d7bf
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Setup GCP Auth
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- 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 }}