Skip to content

Create Release

Create Release #32

Workflow file for this run

name: Create Release
on:
workflow_dispatch:
inputs:
environment:
description: 'Deployment Environment'
required: true
default: 'staging'
type: choice
options:
- staging
- production
version_bump:
description: 'Version Bump Type'
required: true
default: 'patch'
type: choice
options:
- patch
- minor
- major
- none
action_type:
description: 'Action Type'
required: true
type: choice
default: 'build_and_submit'
options:
- build_and_submit
- ota_update
- build
platform:
description: 'Platform'
required: true
default: 'all'
type: choice
options:
- all
- ios
- android
jobs:
create-release:
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.environment }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
persist-credentials: true
- name: Setup Environment
uses: ./.github/actions/setup
with:
EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
- name: Version Management
uses: ./.github/actions/version
id: version
with:
version_bump: ${{ github.event.inputs.version_bump }}
increment: ${{ github.event.inputs.action_type != 'build' }}
- name: Build Application
if: github.event.inputs.action_type != 'ota_update'
uses: ./.github/actions/build
with:
environment: ${{ github.event.inputs.environment }}
platform: ${{ github.event.inputs.platform }}
auto_submit: ${{ github.event.inputs.action_type == 'build_and_submit' }}
- name: OTA Release
if: github.event.inputs.action_type == 'ota_update'
uses: ./.github/actions/ota-update
env:
VARS: ${{ toJson(vars) }}
with:
channel: ${{ github.event.inputs.environment }}
environment: ${{ github.event.inputs.environment }}
version: ${{ steps.version.outputs.version }}
- name: Generate Release Notes
if: github.event.inputs.action_type != 'build' && github.event.inputs.version_bump != 'none'
uses: ./.github/actions/release-notes
with:
version: ${{ steps.version.outputs.version }}
gh_token: ${{ secrets.GT_PAT }}