Skip to content

Commit

Permalink
Test the version setup
Browse files Browse the repository at this point in the history
  • Loading branch information
christianrowlands committed Oct 26, 2023
1 parent f30eb75 commit 0272a5b
Showing 1 changed file with 185 additions and 97 deletions.
282 changes: 185 additions & 97 deletions .github/workflows/android-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,35 +9,35 @@ on:
workflow_dispatch:

jobs:
test:
name: Run Tests
runs-on: macos-latest

strategy:
matrix:
api-level: [ 26, 31 ]
target: [ default, google_apis ]

steps:
- name: Checkout the code
uses: actions/checkout@v1

- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'adopt'

- name: Cache dependencies
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}

- name: Unit Tests
run: ./gradlew test --stacktrace
# test:
# name: Run Tests
# runs-on: macos-latest
#
# strategy:
# matrix:
# api-level: [ 26, 31 ]
# target: [ default, google_apis ]
#
# steps:
# - name: Checkout the code
# uses: actions/checkout@v1
#
# - name: Set up JDK 11
# uses: actions/setup-java@v2
# with:
# java-version: 11
# distribution: 'adopt'
#
# - name: Cache dependencies
# uses: actions/cache@v2
# with:
# path: |
# ~/.gradle/caches
# ~/.gradle/wrapper
# key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
#
# - name: Unit Tests
# run: ./gradlew test --stacktrace

# Need to work through a permissions error to get these working
# - name: Instrumentation Tests
Expand All @@ -50,73 +50,161 @@ jobs:
# script: ./gradlew test check connectedCheck -x lint --stacktrace

# Only upload the reports on failure
- name: Upload Reports
uses: actions/upload-artifact@v2
with:
name: Test-Reports
path: networksurvey/build/reports
if: failure()

buildReleaseApk:
needs: test
# - name: Upload Reports
# uses: actions/upload-artifact@v2
# with:
# name: Test-Reports
# path: networksurvey/build/reports
# if: failure()

bumpVersion:
# needs: test
runs-on: ubuntu-latest

steps:
- name: Checkout the code
uses: actions/checkout@v2

- name: Cache dependencies
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}

- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'adopt'

- name: Save Keystore
env:
KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }}
run: echo $KEYSTORE_FILE | base64 -d > my.keystore

- name: Build Regular Release APK
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
run: ./gradlew assembleRegularRelease
-Pandroid.injected.signing.store.file=$(pwd)/my.keystore
-Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD
-Pandroid.injected.signing.key.alias=$KEY_ALIAS
-Pandroid.injected.signing.key.password=$KEY_PASSWORD

- name: Get APK name
run: echo "base_name=`./gradlew :networksurvey:properties -q | grep 'archivesBaseName:' | awk '{print $2}'`" >> $GITHUB_ENV

- name: Upload Regular APK
uses: actions/upload-artifact@v3
with:
name: Network Survey Regular Release APK
path: networksurvey/build/outputs/apk/regular/release/${{ env.base_name }}-regular-release.apk

- name: Build CDR Release APK
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
run: ./gradlew assembleCdrRelease
-Pandroid.injected.signing.store.file=$(pwd)/my.keystore
-Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD
-Pandroid.injected.signing.key.alias=$KEY_ALIAS
-Pandroid.injected.signing.key.password=$KEY_PASSWORD

- name: Upload CDR APK
uses: actions/upload-artifact@v3
with:
name: Network Survey CDR Release APK
path: networksurvey/build/outputs/apk/cdr/release/${{ env.base_name }}-cdr-release.apk
- name: Checkout repository
uses: actions/checkout@v4

- name: Extract version from tag
uses: damienaicheh/[email protected]

- name: Update version in gradle build
run: sed -i 's/0.1.0+1/${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}+${{ github.run_number }}/g' pubspec.yaml

- name: Extract existing version code
run: |
# Set new version name from tag
version_name=${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}
# Get existing version code from build.gradle
version_code=$(grep "versionCode" app/build.gradle | awk '{print $2}' | tr -d '\n')
# Increment existing version code by 1
version_code=$((version_code + 1))
# Set environment variable for later use
echo "VERSION_NAME=$version_name" >> $GITHUB_ENV
echo "VERSION_CODE=$version_code" >> $GITHUB_ENV
- name: Increase version code and change version name
run: |
# Update build.gradle with new version code and name
echo "${{ env.VERSION_CODE }} - ${{ env.VERSION_NAME }}"
sed -i "s/versionCode [0-9]\+/versionCode ${{ env.VERSION_CODE }}/g" networksurvey/build.gradle
sed -i "s/versionName \"[^\"]*\"/versionName \"${{ env.VERSION_NAME }}\"/g" networksurvey/build.gradle
# - name: Commit and push changes
# run: |
# git config user.email "[email protected]"
# git config user.name "Github Actions"
# git commit -am "Bump version code and change version name to ${{ env.VERSION_NAME }}"
# git push origin HEAD

# buildRelease:
# needs: bumpVersion
# runs-on: ubuntu-latest
#
# steps:
# - name: Checkout the code
# uses: actions/checkout@v4
#
# - name: Cache dependencies
# uses: actions/cache@v2
# with:
# path: |
# ~/.gradle/caches
# ~/.gradle/wrapper
# key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
#
# - name: Set up JDK 11
# uses: actions/setup-java@v2
# with:
# java-version: 11
# distribution: 'adopt'
#
# - name: Save Keystore
# env:
# KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }}
# run: echo $KEYSTORE_FILE | base64 -d > my.keystore
#
# - name: Build Regular Release APK
# env:
# KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
# KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
# KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
# run: ./gradlew assembleRegularRelease
# -Pandroid.injected.signing.store.file=$(pwd)/my.keystore
# -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD
# -Pandroid.injected.signing.key.alias=$KEY_ALIAS
# -Pandroid.injected.signing.key.password=$KEY_PASSWORD
#
# - name: Get APK name
# run: echo "base_name=`./gradlew :networksurvey:properties -q | grep 'archivesBaseName:' | awk '{print $2}'`" >> $GITHUB_ENV
#
# - name: Upload Regular APK
# uses: actions/upload-artifact@v3
# with:
# name: Network Survey Regular Release APK
# path: networksurvey/build/outputs/apk/regular/release/${{ env.base_name }}-regular-release.apk
#
# - name: Build CDR Release APK
# env:
# KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
# KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
# KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
# run: ./gradlew assembleCdrRelease
# -Pandroid.injected.signing.store.file=$(pwd)/my.keystore
# -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD
# -Pandroid.injected.signing.key.alias=$KEY_ALIAS
# -Pandroid.injected.signing.key.password=$KEY_PASSWORD
#
# - name: Upload CDR APK
# uses: actions/upload-artifact@v3
# with:
# name: Network Survey CDR Release APK
# path: networksurvey/build/outputs/apk/cdr/release/${{ env.base_name }}-cdr-no-tracking-release.apk
#
# - name: Build Regular Release Bundle
# env:
# KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
# KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
# KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
# run: ./gradlew bundleRelease
# -Pandroid.injected.signing.store.file=$(pwd)/my.keystore
# -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD
# -Pandroid.injected.signing.key.alias=$KEY_ALIAS
# -Pandroid.injected.signing.key.password=$KEY_PASSWORD
#
# - name: Upload Regular Bundle
# uses: actions/upload-artifact@v3
# with:
# name: regular-appbundle
# path: networksurvey/build/outputs/bundle/regularRelease/${{ env.base_name }}-regular-release.aab
#
# - name: Create a Release in GitHub
# uses: ncipollo/release-action@v1
# with:
# artifacts: "build/app/outputs/apk/release/*.apk,build/app/outputs/bundle/release/app-release.aab"
# token: ${{ secrets.GH_TOKEN }}
# tag: ${{ steps.version.outputs.content }}
# commit: ${{ github.sha }}
#
#
# release:
# name: Release app to internal track
# needs: [ buildRelease ]
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v1
# - name: Get appbundle from artifacts
# uses: actions/download-artifact@v2
# with:
# name: regular-appbundle
#
# - name: Release app to internal track
# uses: r0adkll/upload-google-play@v1
# with:
# serviceAccountJsonPlainText: ${{ secrets.PLAYSTORE_ACCOUNT_KEY }}
# packageName: com.craxiom.networksurvey
# releaseFiles: ${{ env.base_name }}-regular-release.aab
# track: internal
# status: draft

0 comments on commit 0272a5b

Please sign in to comment.