Skip to content

priority-digital-health/github-actions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

github-actions

Centralised location for shared GitHub Actions workflows.

Setup & Configuration

  • SECRETS.md β€” Comprehensive guide to GitHub Actions secrets: global (AWS, Jira) and repo-specific. Explains secret flow, troubleshooting, and setup instructions.
  • SECRETS_CHECKLIST.md β€” Quick reference checklist for setting up a new repo or onboarding a team member.

Composite Actions

env-setup

Standardized .env.local assembly used by ui-review.yml. Handles three stages:

  1. Static environment variables β€” writes from env_file_content (GitHub environment variable)
  2. Backend URL injection β€” appends detected backend URL to a designated env var
  3. Secret environment variables β€” appends 4 optional secret key-value pairs

This action centralizes .env.local assembly logic, eliminating duplicated inline configuration and improving testability.

Inputs

Input Description
env_file_content Static environment variables (one per line, KEY=VALUE format)
backend_env_var Environment variable name to inject backend URL
backend_url Backend URL value
env_secret_1_key / env_secret_1_value Secret 1 key name and value (repeats for secrets 2–4)

Used by

  • ui-review.yml β€” assembles .env.local during build phase

test-report

Generates a formatted markdown test report section with pass/fail counts and optional coverage badges.

Inputs

Input Description
test_type Display name for test type (e.g., "🎭 Playwright Tests", "πŸ“¦ Unit Tests")
results_json JSON with test results ({passed: X, failed: Y, skipped: Z})
coverage_percent Code coverage percentage (0-100); displays badge (green β‰₯80%, yellow β‰₯60%)
report_url Optional URL to detailed test report
duration_seconds Optional test execution time in seconds

Outputs

  • report_markdown β€” Formatted markdown section ready for PR comments

Example output

#### 🎭 Playwright Tests
![Coverage: 85%](https://img.shields.io/badge/coverage-85%25-green)

| Metric | Value |
|--------|-------|
| Passed | βœ… 42 |
| Total | 42 |

⏱️ Duration: 2m 15s

[πŸ“Š Full Report](http://example.com/report)

Reusable Workflows

This repo hosts reusable workflows called from service repos via:

priority-digital-health/github-actions/.github/workflows/<workflow-file>@main

Centralised in this migration wave

  • new-relic-change-tracking.yml (shared across UI repos)
  • ui-build-and-deploy.yml (shared build/deploy workflow for all UI repos)
  • mailing-list-screenshot-comparison.yml
  • assessments-ui-screenshot-comparison.yml
  • booking-engine-screenshot-comparison.yml
  • ui-review.yml (shared review-deploy workflow for all UI repos β€” contract-based and no-contract)
  • ui-stop-review.yml (shared review-teardown workflow for all UI repos β€” contract-based and no-contract)
  • ui-test-playwright.yml (shared Playwright test workflow for all UI repos β€” supports both matrix and non-matrix modes)
  • ui-test-unit.yml (shared unit test workflow for repos requiring unit tests)
  • ui-report-tests.yml (shared test report consolidator β€” posts unified PR comments)
  • ui-pre-deploy-validation.yml (pre-deployment checks: lint, type check, build, secret scanning)
  • ui-rollback-detection.yml (post-deployment health checks and optional automatic rollback)
  • ui-build-test.yml (single orchestration entrypoint for validate + deploy + tests + reporting + health checks)
  • ui-jira-notify.yml (single Jira notification entrypoint wrapping ui-update-jira)
  • ui-update-jira.yml (shared Jira update workflow for all UI repos β€” called after deploy + tests)

ui-review.yml

Handles the full review deploy lifecycle for all UI repos. Supports two modes:

  • Contract mode (default): parses contract: PR labels; runs a matrix build per contract.
  • No-contract mode (require_contract_label: false): single deployment per PR (e.g. platform-ui).

Common flow: parse labels β†’ for each contract (or once): checkout β†’ install β†’ optional unit tests β†’ lint β†’ write .env.local β†’ optional backend detection β†’ build β†’ upload to S3.

Inputs

Core

Input Default Description
app (required) App name used in logs and step summaries
node_version 22.20.0 Node.js version
pnpm_version 9.5.0 pnpm version
build_directory dist Build output directory synced to S3
branch_max_length 30 Max branch chars used in the review-site identifier
branch_suffix (empty) Static suffix appended after the contract slug (e.g. -ml for mailing-list)
environment_middle (empty) Fixed segment between contract and mode in the env name, include leading dash (e.g. -lms)
environment_suffix preprod Trailing env name segment (e.g. pre-prod for booking-engine)
s3_bucket platform.review.pdhdev.co.uk S3 bucket for review deployments
review_domain platform.review.pdhdev.co.uk Domain used to build the public review URL

Contract / mode parsing

Input Default Description
mode_label_prefix mode Label prefix for the optional build-mode label
require_mode_label false Fail if no mode label is present
mode_value_map (empty) Comma-separated Original=mapped pairs to transform mode values (e.g. Assessment=assess,Referral=refer,Signup=signup)

No-contract mode

Input Default Description
require_contract_label true Set to false to skip contract label parsing and run a single deployment
fixed_environment (empty) When set, overrides the computed GitHub environment name (required when require_contract_label: false)
build_command (empty) Full build command override (e.g. pnpm build). When empty: uses pnpm build --mode {contract} in contract mode, or pnpm build in no-contract mode
unit_test_command (empty) When set, runs this command in the build job before lint (e.g. pnpm vitest run)

Dynamic backend detection

Used to inject a backend API URL into .env.local based on a PR label (e.g. backend:staging).

Input Default Description
backend_label_prefix (empty) Label prefix to match (e.g. backend). When empty, backend detection is skipped
backend_label_map (empty) JSON object mapping label value β†’ URL (e.g. {"staging":"https://api.staging.example.com/api"})
backend_default_url (empty) URL to use when no matching label is found
backend_env_var (empty) Env var name written to .env.local with the resolved URL (e.g. VITE_APP_PLATFORM_SDK_BASE_URL)

Secret env vars for .env.local

Up to 4 key/value pairs can be appended to .env.local from secrets. Each pair requires an env_secret_N_key input and an ENV_SECRET_N declared secret.

Input Default Description
env_secret_1_key (empty) Env var name for secret 1 (e.g. VITE_APP_API_KEY)
env_secret_2_key (empty) Env var name for secret 2
env_secret_3_key (empty) Env var name for secret 3
env_secret_4_key (empty) Env var name for secret 4

Corresponding secrets: ENV_SECRET_1, ENV_SECRET_2, ENV_SECRET_3, ENV_SECRET_4 (all required: false).

Outputs

Output Description
review_url Review URL for the last deployed contract (use for single-contract repos)
contracts JSON array of contract names (use as matrix in caller test jobs)
backend_environment Detected backend environment label value (e.g. staging) β€” populated when backend_label_prefix is set
backend_url Resolved backend URL β€” populated when backend_label_prefix is set

ENV_FILE_CONTENT convention

Each GitHub environment (e.g. mycontract-preprod) in the calling repo should define a variable named ENV_FILE_CONTENT whose value is the full text of .env.local for that environment. The reusable workflow writes this to .env.local before running the build.

This keeps environment-specific values scoped to GitHub environment settings rather than hard-coded in workflow files.

Caller examples

Contract-based (e.g. booking-engine):

jobs:
  review:
    uses: priority-digital-health/github-actions/.github/workflows/ui-review.yml@main
    with:
      app: booking-engine
      environment_suffix: pre-prod
    secrets: inherit

  test:
    needs: review
    strategy:
      matrix:
        contract: ${{ fromJSON(needs.review.outputs.contracts) }}
    ...

No-contract with backend detection (e.g. platform-ui):

jobs:
  review:
    uses: priority-digital-health/github-actions/.github/workflows/ui-review.yml@main
    with:
      app: platform-ui
      require_contract_label: false
      fixed_environment: review
      build_command: pnpm build
      build_directory: build
      unit_test_command: pnpm vitest run
      backend_label_prefix: backend
      backend_label_map: '{"staging":"https://api.platform.staging.example.com/api"}'
      backend_default_url: 'https://api.platform.preprd.example.com/api'
      backend_env_var: VITE_APP_PLATFORM_SDK_BASE_URL
      env_secret_1_key: VITE_APP_API_KEY
      env_secret_2_key: VITE_APP_POSTCODER_API_KEY
    secrets:
      ENV_SECRET_1: ${{ secrets.RCPCH_API_KEY }}
      ENV_SECRET_2: ${{ secrets.POSTCODER_API_KEY }}

ui-stop-review.yml

Cleans up review deployments when a PR is closed and posts a Jira comment on merge. Supports both contract-based and no-contract modes, matching the corresponding ui-review.yml configuration.

  1. Parse contract: labels (non-failing β€” labels may have been removed before close); or output [""] when require_contract_label: false
  2. For each contract (or once): derive identifier β†’ delete from S3
  3. If merged: notify Jira

Inputs

Input Default Description
app (required) App name
branch_max_length 30 Must match the value used in the review workflow
branch_suffix (empty) Must match the value used in the review workflow
environment_middle (empty) Must match the value used in the review workflow
environment_suffix preprod Must match the value used in the review workflow
s3_bucket platform.review.pdhdev.co.uk S3 bucket for review deployments
review_domain platform.review.pdhdev.co.uk Domain used in Jira notifications
require_contract_label true Set to false for no-contract mode (must match review workflow)
fixed_environment (empty) GitHub environment name override (must match review workflow when set)

Caller example

jobs:
  stop_review:
    uses: priority-digital-health/github-actions/.github/workflows/ui-stop-review.yml@main
    with:
      app: booking-engine
      environment_suffix: pre-prod
    secrets: inherit

ui-test-playwright.yml

Reusable Playwright test workflow for all UI repos. Centralizes test setup, environment handling, and reporting. Supports two modes:

  • Non-matrix mode (amarahealth-ui, platform-ui): simple REVIEW_URL injection, runs tests once
  • Matrix mode (assessments-ui, booking-engine, mailing-list): runs tests per contract, derives review URLs

Steps performed:

  1. Optionally skip on main or dev branches
  2. For matrix mode: derive review URL from branch name + contract + suffix via review-site-name-action
  3. Checkout β†’ setup pnpm/Node.js β†’ cache node_modules β†’ install dependencies
  4. Run tests (default: pnpm exec playwright test)
  5. Publish JUnit report via action-junit-report
  6. Upload test artifacts (Playwright report)

Inputs

Core

Input Default Description
playwright_version v1.52.0 Docker image tag for Playwright (e.g., v1.52.0, v1.54.2)
node_version 22.20.0 Node.js version
test_command pnpm exec playwright test Test command to run
timeout_minutes 60 Job timeout in minutes
skip_on_main_dev true Skip test job on main/dev branches

Non-matrix mode

Input Default Description
use_matrix false Set to true for matrix mode
review_url (empty) Review URL to inject (required if use_matrix=false)

Matrix mode

Input Default Description
use_matrix false Set to true for matrix mode
contracts_json (empty) JSON array of contracts (required if use_matrix=true)
branch_name (empty) GitHub head ref for branch name derivation (required if use_matrix=true)
branch_max_length 30 Max branch prefix chars for URL derivation
branch_suffix (empty) Suffix appended to branch-contract string (e.g., -ml for mailing-list)
review_domain platform.review.pdhdev.co.uk Domain used to build matrix-mode review URLs

Caller examples

Non-matrix (amarahealth-ui):

jobs:
  test:
    needs: review
    uses: priority-digital-health/github-actions/.github/workflows/ui-test-playwright.yml@main
    with:
      playwright_version: 'v1.52.0'
      node_version: '22.20.0'
      review_url: ${{ needs.review.outputs.review_url }}
    secrets: inherit

Matrix (assessments-ui):

jobs:
  test:
    needs: review
    uses: priority-digital-health/github-actions/.github/workflows/ui-test-playwright.yml@main
    with:
      use_matrix: true
      contracts_json: ${{ needs.review.outputs.contracts }}
      branch_name: ${{ github.head_ref }}
      branch_max_length: 30
      branch_suffix: ''
      review_domain: platform.review.pdhdev.co.uk
      playwright_version: 'v1.52.0'
      node_version: '22.20.0'
    secrets: inherit

Matrix with custom suffix (mailing-list):

jobs:
  test:
    needs: review
    uses: priority-digital-health/github-actions/.github/workflows/ui-test-playwright.yml@main
    with:
      use_matrix: true
      contracts_json: ${{ needs.review.outputs.contracts }}
      branch_name: ${{ github.head_ref }}
      branch_max_length: 20
      branch_suffix: '-ml'
      review_domain: platform.review.pdhdev.co.uk
      playwright_version: 'v1.52.0'
      node_version: '22.20.0'
    secrets: inherit

ui-test-unit.yml

Reusable unit test and type check workflow for UI repos. Runs in the default ubuntu-latest environment (no Docker container). Used by mailing-list to run unit tests and type checks independently from Playwright tests.

Steps performed:

  1. Checkout β†’ setup pnpm/Node.js
  2. Cache node_modules
  3. Run unit tests (required)
  4. Optionally run type checks

Inputs

Input Default Description
node_version 22.20.0 Node.js version
unit_test_command (required) Command to run unit tests (e.g., pnpm test:unit)
typecheck_command (empty) Optional command to run type checks (e.g., pnpm typecheck)
skip_on_main_dev true Skip test job on main/dev branches
timeout_minutes 30 Job timeout in minutes

Caller example (mailing-list β€” unit tests only)

jobs:
  test_unit:
    if: github.head_ref != 'main' && github.head_ref != 'dev'
    needs: review
    uses: priority-digital-health/github-actions/.github/workflows/ui-test-unit.yml@main
    with:
      node_version: '22.20.0'
      unit_test_command: 'pnpm test:unit'
      typecheck_command: 'pnpm typecheck'
    secrets: inherit

  test_playwright:
    if: github.head_ref != 'main' && github.head_ref != 'dev'
    needs: review
    uses: priority-digital-health/github-actions/.github/workflows/ui-test-playwright.yml@main
    with:
      use_matrix: true
      contracts_json: ${{ needs.review.outputs.contracts }}
      branch_name: ${{ github.head_ref }}
      branch_max_length: 20
      branch_suffix: '-ml'
      playwright_version: 'v1.52.0'
      node_version: '22.20.0'
    secrets: inherit

  update_jira:
    if: github.head_ref != 'main' && github.head_ref != 'dev'
    needs: [test_unit, test_playwright, review]
    uses: priority-digital-health/github-actions/.github/workflows/ui-update-jira.yml@main
    with:
      review_url: ${{ needs.review.outputs.review_url }}
    secrets: inherit

Note: Both test_unit and test_playwright run in parallel after the review job completes, reducing overall CI time.


ui-report-tests.yml

Consolidates test results from multiple test jobs and posts a unified summary as a PR comment. Supports combining Playwright and unit test results into a single comment with coverage badges and pass/fail metrics.

Steps performed:

  1. Extract test results from ui-test-playwright.yml and ui-test-unit.yml outputs
  2. Generate formatted markdown report sections using test-report action
  3. Consolidate into a single comment
  4. Post comment to PR (if triggered on pull_request event)

Inputs

Input Default Description
playwright_results (empty) Playwright test results JSON (from ui-test-playwright.yml outputs)
playwright_coverage (empty) Playwright coverage percentage
unit_results (empty) Unit test results JSON (from ui-test-unit.yml outputs)
unit_coverage (empty) Unit test coverage percentage
post_comment true Whether to post comment to PR

Caller example (mailing-list with unit + Playwright)

jobs:
  test_unit:
    # ... test job

  test_playwright:
    # ... test job

  report_tests:
    if: always()
    needs: [test_unit, test_playwright, review]
    uses: priority-digital-health/github-actions/.github/workflows/ui-report-tests.yml@main
    with:
      playwright_results: ${{ needs.test_playwright.outputs.results_json || '{}' }}
      unit_results: ${{ needs.test_unit.outputs.results_json || '{}' }}
    secrets: inherit

Output

Posts a comment to the PR like:

## ✨ Test Results

#### 🎭 Playwright Tests
| Metric | Value |
|--------|-------|
| Passed | βœ… 42 |
| Total | 42 |

#### πŸ“¦ Unit Tests
| Metric | Value |
|--------|-------|
| Passed | βœ… 18 |
| Total | 18 |

---
_Report generated by UI Test Workflows_

ui-pre-deploy-validation.yml

Pre-deployment validation workflow that ensures code quality, type safety, build success, and absence of hardcoded secrets before deployment. Runs on pull requests to block merges if checks fail.

Validations performed:

  1. Linting β€” code style and quality (configurable command)
  2. Type checking β€” TypeScript/type system validation
  3. Build β€” verify the application builds without errors
  4. Secret scanning β€” detect hardcoded secrets and API keys

Each check can be skipped individually via input flags.

Inputs

Input Default Description
lint_command pnpm lint Lint command to execute
typecheck_command pnpm typecheck Type check command
build_command pnpm build Build command
skip_lint false Skip lint checks
skip_typecheck false Skip type checking
skip_build false Skip build validation
skip_secret_scan false Skip secret scanning
timeout_minutes 30 Job timeout in minutes

Outputs

Output Description
validation_passed true or false β€” whether all enabled checks passed
lint_status Lint check outcome (success/failure/skipped)
typecheck_status Type check outcome
build_status Build outcome
secrets_status Secret scan outcome

Caller example (add to review.yml before deploy)

jobs:
  validate:
    uses: priority-digital-health/github-actions/.github/workflows/ui-pre-deploy-validation.yml@main
    with:
      lint_command: 'pnpm lint'
      typecheck_command: 'pnpm typecheck'
      build_command: 'pnpm build'
    secrets: inherit

  review:
    needs: validate
    if: ${{ needs.validate.outputs.validation_passed == 'true' }}
    # ... rest of review job

Validation Report

Generates a job summary with status table:

## πŸ›‘οΈ Pre-Deployment Validation Summary

| Check | Status |
|-------|--------|
| πŸ“ Linting | success |
| πŸ” Type Checking | success |
| πŸ—οΈ  Build | success |
| πŸ” Secret Scan | success |

βœ… All pre-deployment checks passed

ui-rollback-detection.yml

Post-deployment rollback detection workflow. Monitors deployment health and can automatically trigger rollback if the deployed service becomes unhealthy.

Health validation:

  1. Wait for deployment to stabilize (15s)
  2. Poll health check endpoint with configurable retries
  3. Accept HTTP 200-299 as healthy
  4. Optionally trigger automatic rollback on failure

Inputs

Input Default Description
environment required Environment name (review/staging/production)
health_check_url required URL to health check endpoint
rollback_enabled false Enable automatic rollback on failure
max_retries 3 Number of health check retry attempts
retry_delay 10 Delay between retries in seconds

Outputs

Output Description
deployment_healthy true or false β€” whether health checks passed
rollback_triggered true if automatic rollback was initiated

Caller example (add to review.yml after deploy)

jobs:
  deploy:
    # ... deploy logic

  post_deploy_check:
    needs: deploy
    if: always()
    uses: priority-digital-health/github-actions/.github/workflows/ui-rollback-detection.yml@main
    with:
      environment: 'review'
      health_check_url: 'https://review-${{ github.event.pull_request.number }}.example.com/health'
      rollback_enabled: false  # Set to true for automatic rollback
      max_retries: 3
      retry_delay: 10
    secrets: inherit

Health Check Behavior

  • Passes: HTTP 200-299 received from health check endpoint
  • Fails: Non-2xx response or endpoint unreachable after all retries
  • Retry logic: Waits retry_delay seconds between attempts (e.g., default 3 retries Γ— 10s delay = 30s max)
  • Rollback: If rollback_enabled: true and health check fails, queues automatic rollback workflow

ui-build-test.yml

Reusable orchestration workflow that provides a single caller entrypoint for UI repos while keeping internal workflows modular.

Execution order:

  1. Optional pre-deploy validation (ui-pre-deploy-validation.yml)
  2. Build + deploy (ui-review.yml)
  3. Optional unit tests (ui-test-unit.yml)
  4. Optional Playwright tests (ui-test-playwright.yml)
  5. Optional consolidated test comment (ui-report-tests.yml)
  6. Optional post-deploy health checks (ui-rollback-detection.yml)

Standard profile defaults

Use these defaults to keep repos aligned:

  • node_version: '22.20.0' (shared by deploy + test workflows)
  • review_domain: platform.review.pdhdev.co.uk
  • branch_suffix: '' (no global suffix baseline)

Set branch_suffix only when a repo has a hard requirement (for example mailing-list using -ml).

Caller example (single entrypoint)

jobs:
  build_test:
    uses: priority-digital-health/github-actions/.github/workflows/ui-build-test.yml@main
    with:
      app: mailing-list
      node_version: '22.20.0'
      branch_suffix: '-ml'
      require_contract_label: true
      run_validation: true
      run_unit_tests: true
      unit_test_command: 'pnpm test:unit'
      typecheck_command: 'pnpm typecheck'
      run_playwright_tests: true
      playwright_use_matrix: true
      run_test_report: true
    secrets: inherit

Notes:

  • Use this as the default entrypoint for new migrations.
  • Existing modular workflows remain supported and reusable.

ui-jira-notify.yml

Thin orchestration wrapper over ui-update-jira.yml, intended as the single Jira finalisation entrypoint for callers.

Caller example

jobs:
  jira_notify:
    needs: [build_test]
    if: always()
    uses: priority-digital-health/github-actions/.github/workflows/ui-jira-notify.yml@main
    with:
      review_url: ${{ needs.build_test.outputs.review_url }}
    secrets: inherit

ui-update-jira.yml

Reusable post-deploy Jira update workflow. Called after the deploy and test jobs in all UI repos.

Steps performed:

  1. Extract Jira ticket number from branch name
  2. Check for an existing deployment comment (deduplication)
  3. Download review-url-*.json artifacts from the build job and build a deployment comment
  4. Post the comment to the Jira ticket
  5. Extract the "How to test" checklist from the PR body β†’ customfield_10085
  6. Set customfield_10154 (description ADF from PR body, with "How to test" section removed)
  7. Set customfield_10050 (review URL field) β€” now applied to all repos

PR body is passed via environment variables throughout, preventing script injection.

Inputs

Input Default Description
review_url (empty) Review URL from needs.review.outputs.review_url. Used for customfield_10050 and as comment fallback
jira_comment_suffix (empty) Optional extra text appended to the deployment comment (e.g. backend environment info for platform-ui)

Secrets

Secret Description
JIRA_BASE_URL Jira base URL
JIRA_USER_EMAIL Jira user email
JIRA_API_TOKEN Jira API token

All three are required: false so secrets: inherit works without error when Jira secrets aren't configured.

Caller example

jobs:
  update_jira:
    needs: [test, review]
    uses: priority-digital-health/github-actions/.github/workflows/ui-update-jira.yml@main
    with:
      review_url: ${{ needs.review.outputs.review_url }}
    secrets: inherit

platform-ui (with backend suffix)

jobs:
  update_jira:
    needs: [test, review]
    uses: priority-digital-health/github-actions/.github/workflows/ui-update-jira.yml@main
    with:
      review_url: ${{ needs.review.outputs.review_url }}
      jira_comment_suffix: "πŸ–₯️ Backend: ${{ needs.review.outputs.backend_environment }} (${{ needs.review.outputs.backend_url }})"
    secrets: inherit

Repo Mapping

Build & Deploy

  • mailing-list/.github/workflows/build-and-deploy.yml -> ui-build-and-deploy.yml (app: mailing-list)
  • mailing-list/.github/workflows/screenshot-comparison.yml -> mailing-list-screenshot-comparison.yml
  • mailing-list/.github/workflows/new-relic-change-tracking.yml -> new-relic-change-tracking.yml
  • assessments-ui/.github/workflows/build-and-deploy.yml -> ui-build-and-deploy.yml (app: assessments-ui)
  • assessments-ui/.github/workflows/screenshot-comparison.yml -> assessments-ui-screenshot-comparison.yml
  • assessments-ui/.github/workflows/new-relic-change-tracking.yml -> new-relic-change-tracking.yml
  • booking-engine/.github/workflows/build-and-deploy.yml -> ui-build-and-deploy.yml (app: booking-engine)
  • booking-engine/.github/workflows/screenshot-comparison.yml -> booking-engine-screenshot-comparison.yml
  • booking-engine/.github/workflows/new-relic-change-tracking.yml -> new-relic-change-tracking.yml
  • amarahealth-ui/.github/workflows/build-and-deploy.yml -> ui-build-and-deploy.yml (app: amarahealth-ui)
  • amarahealth-ui/.github/workflows/new-relic-change-tracking.yml -> new-relic-change-tracking.yml
  • platform-ui/.github/workflows/build-and-deploy.yaml -> ui-build-and-deploy.yml (app: platform-ui)
  • platform-ui/.github/workflows/new-relic-change-tracking.yml -> new-relic-change-tracking.yml

Review / Stop-Review

  • mailing-list/.github/workflows/review.yml -> ui-review.yml (app: mailing-list, branch_max_length: 20, branch_suffix: '-ml')
  • mailing-list/.github/workflows/stop-review.yml -> ui-stop-review.yml (app: mailing-list, branch_max_length: 20, branch_suffix: '-ml')
  • assessments-ui/.github/workflows/review.yml -> ui-review.yml (app: assessments-ui, mode_label_prefix: build, require_mode_label: true, mode_value_map: Assessment=assess,...)
  • assessments-ui/.github/workflows/stop-review.yml -> ui-stop-review.yml (app: assessments-ui)
  • booking-engine/.github/workflows/review.yml -> ui-review.yml (app: booking-engine, environment_suffix: pre-prod)
  • booking-engine/.github/workflows/stop-review.yaml -> ui-stop-review.yml (app: booking-engine, environment_suffix: pre-prod)
  • amarahealth-ui/.github/workflows/review.yml -> ui-review.yml (app: amarahealth-ui, environment_middle: '-lms')
  • amarahealth-ui/.github/workflows/stop-review.yml -> ui-stop-review.yml (app: amarahealth-ui, environment_middle: '-lms')
  • platform-ui/.github/workflows/review.yaml -> ui-review.yml (app: platform-ui, require_contract_label: false, fixed_environment: review, backend detection enabled)
  • platform-ui/.github/workflows/stop-review.yaml -> ui-stop-review.yml (app: platform-ui, require_contract_label: false, fixed_environment: review)

Jira Updates

  • amarahealth-ui β†’ ui-update-jira.yml (migrated from inline job)
  • assessments-ui β†’ ui-update-jira.yml (added β€” previously had no Jira update job)
  • booking-engine β†’ ui-update-jira.yml (migrated; customfield_10050 now set)
  • mailing-list β†’ ui-update-jira.yml (migrated; customfield_10050 now set)
  • platform-ui β†’ ui-update-jira.yml (migrated; backend info via jira_comment_suffix)

Remaining Phase 2 Candidates

  • Environment trigger wrappers with matrix differences (staging, pre-prod, production, service-*, signup-*, etc.).
  • platform-core workflows (setup, QA suite, deploy and release orchestration).
  • platform-sdk-js workflows (test, version-bump, build-deploy).

About

Centralised location for shared github actions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors