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: Alpha Release | ||
| on: | ||
| push: | ||
| branches: [develop] | ||
| paths-ignore: | ||
| - 'ui/src/lib/api-client/**' | ||
| workflow_dispatch: | ||
| # Prevent concurrent alpha 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 }} | ||
| # Alpha releases run unit tests first | ||
| alpha-testing: | ||
| name: Alpha 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, 'Alpha 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: 'alpha' | ||
| test_scope: 'unit' | ||
| alpha-release: | ||
| name: Alpha 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, 'Alpha release') && !contains(github.event.head_commit.message, '🚀') && !contains(github.event.head_commit.message, 'smart-on-fhir-proxy-releaser') }} | ||
| needs: [validate-secrets, alpha-testing] | ||
| uses: ./.github/orchestrations/release-orchestrator.yml | ||
| with: | ||
| release_type: 'alpha' | ||
| source_branch: 'develop' | ||
| target_branch: 'develop' | ||
| should_bump_version: true | ||
| 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: [alpha-testing, alpha-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: "❌ Alpha Release Failed" | ||
| message: "Alpha release workflow failed on develop branch" | ||
| color: "ff0000" | ||
| continue-on-error: true | ||