Skip to content

Release to QA

Release to QA #36

Workflow file for this run

# Releases from master branch to QA staging server.
name: "Release to QA"
concurrency: deploy-staging
on:
schedule:
# Run every day except Tuesday, at 01:30 UTC, shortly before beginning of tester workday.
# Note that this workflow can be disabled from the GitHub UI by going to
# Actions > Workflows > Release to QA > "..." > Disable workflow
- cron: "30 1 * * 0-1,3-6"
workflow_dispatch:
inputs:
skip-branch-update:
description: "Don't update the branch, and release from its current commit. For example, when releasing a hotfix that has already been pushed to the branch."
required: true
type: boolean
default: false
jobs:
update_branch:
name: "Update branch"
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Set branch
# Note that just the step is conditional, not the entire job, so that subsequent jobs can still depend on this
# job either finishing or being basically skipped.
if: ${{ github.event.inputs.skip-branch-update == 'true' }}
run: git push --force origin origin/master:sf-qa
- name: Use branch
run: git checkout sf-qa
determine_version:
name: "Determine version"
needs: update_branch
uses: ./.github/workflows/compute-next-version.yml
with:
versioning-system: "staging"
tag_prefix: "SF-QAv"
deploy:
name: "Deploy to QA"
needs: determine_version
secrets: inherit
uses: ./.github/workflows/release.yml
with:
environment: "qa_deploy"
dotnet_version: "8.0.x"
node_version: "18.20.2"
npm_version: "10.5.0"
os: "ubuntu-20.04"
angular_config: "staging"
app_name: "scriptureforge"
app_suffix: "_qa"
version_number: "${{ needs.determine_version.outputs.next_version }}"
vcs_tag_prefix: "SF-QAv"
node_options: "--max_old_space_size=4096"
project: "SIL.XForge.Scripture"