Workflow file for this run
This file contains hidden or 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: Beta Release | ||
| on: | ||
| push: | ||
| branches: [test] | ||
| paths-ignore: | ||
| - 'ui/src/lib/api-client/**' | ||
| workflow_dispatch: | ||
| # Prevent concurrent beta releases | ||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
| permissions: | ||
| contents: write | ||
| actions: read | ||
| jobs: | ||
| # Validate required secrets early | ||
| validate-secrets: | ||
| name: Validate Required Secrets | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout for action access | ||
| uses: actions/checkout@v4 | ||
| - name: Validate secrets | ||
| uses: ./.github/actions/validate-secrets | ||
| with: | ||
| required-secrets: 'APP_ID,APP_PRIVATE_KEY,OPENAI_API_KEY' | ||
| app-id: ${{ secrets.APP_ID }} | ||
| app-private-key: ${{ secrets.APP_PRIVATE_KEY }} | ||
| openai-api-key: ${{ secrets.OPENAI_API_KEY }} | ||
| # Beta releases run comprehensive testing (unit + integration + E2E) | ||
| beta-testing: | ||
| name: Beta Testing | ||
| needs: [validate-secrets] | ||
| if: ${{ !contains(github.event.head_commit.message, '🔄 Update version') && !contains(github.event.head_commit.message, '🤖 Update API clients') && !contains(github.event.head_commit.message, 'Beta release') && !contains(github.event.head_commit.message, '🚀') && !contains(github.event.head_commit.message, 'smart-on-fhir-proxy-releaser') }} | ||
| uses: ./.github/orchestrations/testing-strategy.yml | ||
| with: | ||
| test_stage: 'beta' | ||
| test_scope: 'all' | ||
| beta-release: | ||
| name: Beta Release | ||
| # Only run if the last commit is not a release commit to avoid infinite loops | ||
| if: ${{ !contains(github.event.head_commit.message, '🔄 Update version') && !contains(github.event.head_commit.message, '🤖 Update API clients') && !contains(github.event.head_commit.message, 'Beta release') && !contains(github.event.head_commit.message, '🚀') && !contains(github.event.head_commit.message, 'smart-on-fhir-proxy-releaser') }} | ||
| needs: [validate-secrets, beta-testing] | ||
| uses: ./.github/orchestrations/release-orchestrator.yml | ||
| with: | ||
| release_type: 'beta' | ||
| source_branch: 'test' | ||
| target_branch: 'test' | ||
| should_bump_version: false | ||
| is_prerelease: true | ||
| commit_limit: 10 | ||
| secrets: | ||
| APP_ID: ${{ secrets.APP_ID }} | ||
| APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} | ||
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | ||
| # Notify on failure | ||
| notify-failure: | ||
| name: Notify on Failure | ||
| runs-on: ubuntu-latest | ||
| needs: [beta-testing, beta-release] | ||
| if: failure() | ||
| steps: | ||
| - name: Checkout for action access | ||
| uses: actions/checkout@v4 | ||
| - name: Notify Discord on failure | ||
| uses: ./.github/actions/discord-notify | ||
| with: | ||
| webhook-url: ${{ secrets.DISCORD_WEBHOOK }} | ||
| title: "❌ Beta Release Failed" | ||
| message: "Beta release workflow failed on test branch" | ||
| color: "ff0000" | ||
| continue-on-error: true | ||