Skip to content

Fix message dismissing and extract message handling from home view mo… #12

Fix message dismissing and extract message handling from home view mo…

Fix message dismissing and extract message handling from home view mo… #12

Workflow file for this run

#
# This source file is part of the Stanford Spezi open-source project
#
# SPDX-FileCopyrightText: 2024 Stanford University
#
# SPDX-License-Identifier: MIT
#
name: Deployment
on:
push:
branches:
- main
workflow_dispatch:
inputs:
environment:
description: |
The GitHub deployment environment.
required: true
default: 'internal'
type: choice
options:
- internal
- staging
- production
version:
description: |
The semantic version of the app that should be released.
required: true
type: string
workflow_call:
inputs:
environment:
description: |
The GitHub deployment environment.
required: false
type: string
default: staging
version:
description: |
The semantic version of the app that should be released.
required: true
type: string
concurrency:
group: main
cancel-in-progress: false
jobs:
determineenvironment:
name: Determine Environment
runs-on: ubuntu-latest
outputs:
environment: ${{ steps.determineenvironment.outputs.environment }}
steps:
- name: Determine Environment
id: determineenvironment
run: |
echo "Determining the Environment ..."
if [[ -z "${{ inputs.environment }}" ]]; then
echo "environment=staging" >> $GITHUB_OUTPUT
echo "environment: staging"
else
echo "environment=${{ inputs.environment }}" >> $GITHUB_OUTPUT
echo "environment: ${{ inputs.environment }}"
fi
vars:
name: Inject Environment Variables In Deployment Workflow
needs: determineenvironment
runs-on: ubuntu-latest
environment: ${{ needs.determineenvironment.outputs.environment }}
outputs:
appidentifier: ${{ vars.APP_IDENTIFIER }}
version: ${{ steps.vars.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- uses: actions-ecosystem/action-get-latest-tag@v1
id: get-latest-tag
with:
semver_only: true
initial_version: "2.0.0"
- run: |
echo "Injecting Environment Variables In Deployment Workflow ..."
echo "appidentifier: ${{ vars.APP_IDENTIFIER }}"
if [[ -z "${{ inputs.version }}" ]]; then
echo "version=${{ steps.get-latest-tag.outputs.tag }}" >> $GITHUB_OUTPUT
echo "version: ${{ steps.get-latest-tag.outputs.tag }}"
else
echo "version=${{ inputs.version }}" >> $GITHUB_OUTPUT
echo "version: ${{ inputs.version }}"
fi
buildtestandanalyze:
uses: ./.github/workflows/build-test-analyze.yml
secrets: inherit
googleplayinternal:
name: Upload App to Google Play
runs-on: ubuntu-latest
needs: [buildtestandanalyze, determineenvironment, vars]
environment: ${{ needs.determineenvironment.outputs.environment }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/[email protected]
with:
distribution: 'temurin'
java-version: '17'
cache: gradle
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
- name: Decode and Write Google Service JSON
env:
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: echo $GOOGLE_SERVICES_JSON | base64 --decode >./app/google-services.json
- name: Decode and Write Secrets
env:
SECRETS_XML: ${{ secrets.SECRETS_XML }}
run: echo $SECRETS_XML | base64 --decode >./modules/account/src/main/res/values/secrets.xml
- name: Setup keystore file
env:
KEY_STORE: ${{ secrets.KEY_STORE }}
run: |
echo $KEY_STORE | base64 -d > keystore.jks
echo $KEY_STORE | base64 -d > app/keystore.jks
- name: Build and Deploy
env:
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
SERVICE_ACCOUNT_JSON_KEY: ${{ secrets.SERVICE_ACCOUNT_JSON_KEY }}
run: bundle exec fastlane internal environment:"${{ needs.determineenvironment.outputs.environment }}" applicationid:"${{ needs.vars.outputs.appidentifier }}" versionname:"${{ needs.vars.outputs.version }}"