2020-07-06 02:27:03 +00:00
|
|
|
name: Production Deploy
|
|
|
|
|
|
|
|
on:
|
|
|
|
release:
|
2020-08-29 18:26:36 +00:00
|
|
|
types: [ released ]
|
2020-07-06 02:27:03 +00:00
|
|
|
|
|
|
|
jobs:
|
2020-09-02 04:34:19 +00:00
|
|
|
app_build:
|
|
|
|
name: Github, Firebase, and Sentry Release
|
2020-07-06 02:27:03 +00:00
|
|
|
runs-on: ubuntu-latest
|
2020-08-29 20:14:16 +00:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
with:
|
2020-09-02 04:34:19 +00:00
|
|
|
fetch-depth: 0
|
2020-08-29 20:14:16 +00:00
|
|
|
|
|
|
|
- name: Set up JDK 1.8
|
|
|
|
uses: actions/setup-java@v1
|
|
|
|
with:
|
|
|
|
java-version: 1.8
|
|
|
|
|
2020-09-02 04:34:19 +00:00
|
|
|
- uses: actions/cache@v2
|
2020-08-29 20:14:16 +00:00
|
|
|
with:
|
2020-09-02 04:34:19 +00:00
|
|
|
path: |
|
|
|
|
~/.gradle/caches
|
|
|
|
~/.gradle/wrapper
|
|
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
|
|
|
|
restore-keys: |
|
|
|
|
${{ runner.os }}-gradle-
|
|
|
|
|
|
|
|
- uses: ./.github/actions/create-release-number
|
|
|
|
name: Create Release Number
|
|
|
|
id: rel_number
|
2020-07-06 02:27:03 +00:00
|
|
|
with:
|
2020-09-14 20:14:38 +00:00
|
|
|
beta: false
|
2020-07-06 02:27:03 +00:00
|
|
|
|
2020-09-02 04:34:19 +00:00
|
|
|
- uses: ./.github/actions/inflate-secrets
|
|
|
|
name: Inflate Secrets
|
2020-07-06 02:27:03 +00:00
|
|
|
with:
|
2020-09-02 04:34:19 +00:00
|
|
|
keystore: ${{ secrets.ORIGINAL_KEYSTORE_FILE }}
|
|
|
|
google-services: ${{ secrets.GOOGLESERVICES }}
|
|
|
|
firebase-creds: ${{ secrets.FIREBASECREDS }}
|
|
|
|
playstore-creds: ${{ secrets.PLAYSTORECREDS }}
|
2020-07-06 02:27:03 +00:00
|
|
|
|
2020-09-02 04:34:19 +00:00
|
|
|
- uses: ./.github/actions/create-release-notes
|
|
|
|
name: Create Release Notes
|
2020-07-06 02:27:03 +00:00
|
|
|
|
2020-09-14 20:14:38 +00:00
|
|
|
- name: Swap release notes
|
|
|
|
run: |
|
|
|
|
rm ./app/build/outputs/changelogBeta
|
|
|
|
cp ./app/build/outputs/changelogGithub ./app/build/outputs/changelogBeta
|
|
|
|
|
2020-07-06 02:27:03 +00:00
|
|
|
- name: Build Release
|
|
|
|
env:
|
2020-08-29 18:26:36 +00:00
|
|
|
KEYSTORE_PASSWORD: ${{ secrets.ORIGINAL_KEYSTORE_FILE_PASSWORD }}
|
|
|
|
KEYSTORE_ALIAS: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS }}
|
|
|
|
KEYSTORE_ALIAS_PASSWORD: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS_PASSWORD }}
|
2020-09-02 04:34:19 +00:00
|
|
|
VERSION: ${{ steps.rel_number.outputs.version }}
|
|
|
|
VERSION_CODE: ${{ steps.rel_number.outputs.version-code }}
|
2020-07-06 02:27:03 +00:00
|
|
|
run: ./gradlew assembleRelease
|
|
|
|
|
2020-09-01 18:29:14 +00:00
|
|
|
- name: Get the upload URL for the release
|
|
|
|
uses: bruceadams/get-release@v1.2.1
|
|
|
|
id: get_release
|
2020-09-01 18:57:56 +00:00
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
2020-08-29 20:14:16 +00:00
|
|
|
|
2020-08-29 18:26:36 +00:00
|
|
|
- name: Upload Full APK
|
|
|
|
uses: actions/upload-release-asset@v1
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
with:
|
2020-09-01 18:29:14 +00:00
|
|
|
upload_url: ${{ steps.get_release.outputs.upload_url }}
|
2020-08-29 18:26:36 +00:00
|
|
|
asset_path: ./app/build/outputs/apk/full/release/app-full-release.apk
|
2020-09-02 04:34:19 +00:00
|
|
|
asset_name: home-assistant-full-${{steps.rel_number.outputs.version}}.apk
|
2020-08-29 18:26:36 +00:00
|
|
|
asset_content_type: application/zip
|
|
|
|
|
|
|
|
- name: Upload Minimal APK
|
|
|
|
uses: actions/upload-release-asset@v1
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
with:
|
2020-09-01 18:29:14 +00:00
|
|
|
upload_url: ${{ steps.get_release.outputs.upload_url }}
|
2020-08-29 18:26:36 +00:00
|
|
|
asset_path: ./app/build/outputs/apk/minimal/release/app-minimal-release.apk
|
2020-09-02 04:34:19 +00:00
|
|
|
asset_name: home-assistant-minimal-${{steps.rel_number.outputs.version}}.apk
|
2020-08-29 18:26:36 +00:00
|
|
|
asset_content_type: application/zip
|
2020-07-06 02:27:03 +00:00
|
|
|
|
|
|
|
- name: Deploy to Firebase
|
|
|
|
env:
|
2020-08-29 18:26:36 +00:00
|
|
|
KEYSTORE_PASSWORD: ${{ secrets.ORIGINAL_KEYSTORE_FILE_PASSWORD }}
|
|
|
|
KEYSTORE_ALIAS: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS }}
|
|
|
|
KEYSTORE_ALIAS_PASSWORD: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS_PASSWORD }}
|
2020-09-02 04:34:19 +00:00
|
|
|
VERSION: ${{ steps.rel_number.outputs.version }}
|
|
|
|
VERSION_CODE: ${{ steps.rel_number.outputs.version-code }}
|
2020-08-03 17:10:31 +00:00
|
|
|
run: ./gradlew appDistributionUploadFullRelease
|
2020-08-30 19:19:20 +00:00
|
|
|
|
2020-08-29 22:23:58 +00:00
|
|
|
- name: Create a Sentry.io release
|
|
|
|
uses: tclindner/sentry-releases-action@v1.2.0
|
|
|
|
env:
|
|
|
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
|
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
|
|
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
|
|
with:
|
2020-09-02 04:34:19 +00:00
|
|
|
tagName: io.homeassistant.companion.android@${{ steps.rel_number.outputs.version }}
|
2020-08-29 22:23:58 +00:00
|
|
|
environment: Production
|
2020-07-06 02:27:03 +00:00
|
|
|
|
2020-08-29 20:14:16 +00:00
|
|
|
play_publish:
|
|
|
|
name: Play Publish
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
|
|
|
|
|
|
|
- name: Set up JDK 1.8
|
|
|
|
uses: actions/setup-java@v1
|
|
|
|
with:
|
|
|
|
java-version: 1.8
|
|
|
|
|
2020-09-02 04:34:19 +00:00
|
|
|
- uses: actions/cache@v2
|
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
~/.gradle/caches
|
|
|
|
~/.gradle/wrapper
|
|
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
|
|
|
|
restore-keys: |
|
|
|
|
${{ runner.os }}-gradle-
|
|
|
|
|
|
|
|
- uses: ./.github/actions/create-release-number
|
|
|
|
name: Create Release Number
|
|
|
|
id: rel_number
|
|
|
|
with:
|
|
|
|
beta: false
|
2020-07-06 02:27:03 +00:00
|
|
|
|
2020-09-02 04:34:19 +00:00
|
|
|
- uses: ./.github/actions/inflate-secrets
|
|
|
|
name: Inflate Secrets
|
|
|
|
with:
|
|
|
|
keystore: ${{ secrets.UPLOAD_KEYSTORE_FILE }}
|
|
|
|
google-services: ${{ secrets.GOOGLESERVICES }}
|
|
|
|
firebase-creds: ${{ secrets.FIREBASECREDS }}
|
|
|
|
playstore-creds: ${{ secrets.PLAYSTORECREDS }}
|
2020-08-29 20:14:16 +00:00
|
|
|
|
2020-09-02 04:34:19 +00:00
|
|
|
- uses: ./.github/actions/create-release-notes
|
|
|
|
name: Create Release Notes
|
2020-08-29 20:14:16 +00:00
|
|
|
|
|
|
|
- name: Build Release
|
|
|
|
env:
|
|
|
|
KEYSTORE_PASSWORD: ${{ secrets.UPLOAD_KEYSTORE_FILE_PASSWORD }}
|
|
|
|
KEYSTORE_ALIAS: ${{ secrets.UPLOAD_KEYSTORE_ALIAS }}
|
|
|
|
KEYSTORE_ALIAS_PASSWORD: ${{ secrets.UPLOAD_KEYSTORE_ALIAS_PASSWORD }}
|
2020-09-02 04:34:19 +00:00
|
|
|
VERSION: ${{ steps.rel_number.outputs.version }}
|
|
|
|
VERSION_CODE: ${{ steps.rel_number.outputs.version-code }}
|
|
|
|
run: ./gradlew bundleFullRelease
|
2020-08-29 20:14:16 +00:00
|
|
|
|
|
|
|
- name: Deploy to Playstore Beta
|
2020-07-06 02:27:03 +00:00
|
|
|
env:
|
2020-08-29 22:23:58 +00:00
|
|
|
KEYSTORE_PASSWORD: ${{ secrets.UPLOAD_KEYSTORE_FILE_PASSWORD }}
|
|
|
|
KEYSTORE_ALIAS: ${{ secrets.UPLOAD_KEYSTORE_ALIAS }}
|
|
|
|
KEYSTORE_ALIAS_PASSWORD: ${{ secrets.UPLOAD_KEYSTORE_ALIAS_PASSWORD }}
|
2020-09-02 04:34:19 +00:00
|
|
|
VERSION: ${{ steps.rel_number.outputs.version }}
|
|
|
|
VERSION_CODE: ${{ steps.rel_number.outputs.version-code }}
|
2020-08-29 20:14:16 +00:00
|
|
|
run: ./gradlew publishFullReleaseBundle
|
2020-09-14 20:14:38 +00:00
|
|
|
|
|
|
|
- name: Promote to Beta to Production
|
|
|
|
env:
|
|
|
|
KEYSTORE_PASSWORD: ${{ secrets.UPLOAD_KEYSTORE_FILE_PASSWORD }}
|
|
|
|
KEYSTORE_ALIAS: ${{ secrets.UPLOAD_KEYSTORE_ALIAS }}
|
|
|
|
KEYSTORE_ALIAS_PASSWORD: ${{ secrets.UPLOAD_KEYSTORE_ALIAS_PASSWORD }}
|
|
|
|
VERSION: ${{ steps.rel_number.outputs.version }}
|
|
|
|
VERSION_CODE: ${{ steps.rel_number.outputs.version-code }}
|
|
|
|
run: ./gradlew promoteArtifact --from-track beta --promote-track production
|