Increment version code and number to 15 #7
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: Staging CI/CD | |
on: | |
pull_request: | |
branches: | |
- staging | |
paths-ignore: | |
- '**/*.md' | |
- '**/*.yml' | |
# - '**/*.gradle' | |
- '**/*.txt' | |
- '.gitignore' | |
- '.gitattributes' | |
types: | |
- closed | |
jobs: | |
test: | |
# only run workflow after PR is merged | |
if: github.event.pull_request.merged == true | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@v3 | |
# Cache npm dependencies (from GitHub docs) | |
- name: Cache node modules | |
id: cache-npm | |
uses: actions/cache@v3 | |
env: | |
cache-name: cache-node-modules | |
with: | |
# npm cache files are stored in `~/.npm` on Linux/macOS | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
# If there's a cache miss | |
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }} | |
name: List the state of node modules | |
continue-on-error: true | |
run: npm list | |
# Caching process complete | |
- name: Install dependencies | |
run: npm install | |
- name: Lint check | |
run: npm run lint | |
- name: Run tests | |
run: npm run test | |
deploy: | |
needs: test | |
# default action is success(): if(success) | |
runs-on: ubuntu-latest | |
env: | |
MYAPP_UPLOAD_KEY_ALIAS: ${{ secrets.ANDROID_SIGNING_ALIAS }} | |
MYAPP_UPLOAD_STORE_PASSWORD: ${{ secrets.ANDROID_SIGNING_STORE_PASSWORD }} | |
MYAPP_UPLOAD_KEY_PASSWORD: ${{ secrets.ANDROID_SIGNING_KEY_PASSWORD }} | |
steps: | |
# We need to checkout the current branch and install node | |
# dependencies again because every GH Actions job runs on | |
# a seperate runner (VM) | |
- name: Checkout branch | |
uses: actions/checkout@v3 | |
# Cache npm dependencies (from GitHub docs) | |
- name: Cache node modules | |
id: cache-npm | |
uses: actions/cache@v3 | |
env: | |
cache-name: cache-node-modules | |
with: | |
# npm cache files are stored in `~/.npm` on Linux/macOS | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
# If there's a cache miss | |
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }} | |
name: List the state of node modules | |
continue-on-error: true | |
run: npm list | |
# Caching process complete | |
- name: Install dependencies | |
run: npm install | |
- name: Increment versionCode | |
id: increment_version | |
run: | | |
# Extract the current versionCode from build.gradle | |
current_version_code=$(grep 'versionCode' android/app/build.gradle | awk -F ' ' '{print $2}') | |
# Increment the versionCode by 1 | |
new_version_code=$((current_version_code + 1)) | |
# Update the build.gradle file with the new versionCode | |
sed -i "s/versionCode ${current_version_code}/versionCode ${new_version_code}/" android/app/build.gradle | |
echo "NEW_VERSION_CODE=${new_version_code}" >> ${GITHUB_OUTPUT} | |
- name: Cache Gradle Wrapper | |
uses: actions/cache@v3 | |
with: | |
path: ~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }} | |
- name: Cache Gradle Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.gradle/caches | |
key: ${{ runner.os }}-gradle-caches-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }} | |
restore-keys: ${{ runner.os }}-gradle-caches- | |
# Start the build process | |
- name: Make Gradlew Executable | |
run: cd android && chmod +x ./gradlew | |
- name: Build Android App Bundle | |
run: cd android && ./gradlew bundleRelease --no-daemon | |
- name: Sign App Bundle | |
id: sign_app | |
uses: r0adkll/sign-android-release@v1 | |
with: | |
releaseDirectory: android/app/build/outputs/bundle/release | |
signingKeyBase64: ${{ secrets.ANDROID_SIGNING_KEY }} | |
alias: ${{ secrets.ANDROID_SIGNING_ALIAS }} | |
keyStorePassword: ${{ secrets.ANDROID_SIGNING_STORE_PASSWORD }} | |
keyPassword: ${{ secrets.ANDROID_SIGNING_KEY_PASSWORD }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Signed App Bundle | |
path: ${{steps.sign_app.outputs.signedReleaseFile}} | |
- name: Deploy to Play Store (Alpha) | |
uses: r0adkll/upload-google-play@v1 | |
with: | |
serviceAccountJsonPlainText: ${{ secrets.ANDROID_SERVICE_ACCOUNT }} | |
# The packageName must already exist in the play console account, so make sure you upload a manual apk or aab first through the console | |
# https://github.com/r0adkll/upload-google-play/tree/v1/ | |
packageName: com.thebest.gamchha | |
releaseFiles: ${{steps.sign_app.outputs.signedReleaseFile}} | |
track: alpha | |
status: draft | |
inAppUpdatePriority: 3 | |
whatsNewDirectory: android/release-notes/ | |
releaseName: v1.0.0.a |