Skip to content

Migration from ADO to Github Actions #55

Migration from ADO to Github Actions

Migration from ADO to Github Actions #55

# DESCRIPTION:
# Builds, tests, and packages the solution for the main branch.
on:
pull_request
permissions:
id-token: write
contents: read
defaults:
run:
working-directory: src
shell: bash
env:
buildConfiguration: Release
azureSubscriptionEndpoint: docker-build
azureContainerRegistryName: healthplatformregistry
connectedServiceName: Microsoft Health Open Source Subscription
composeLocation: build/docker/docker-compose.yaml
imageTag: ${{github.run_number}}
outputPath: ${{github.workspace}}/artifacts
jobs:
setup:
runs-on: ubuntu-latest
env:
deploymentEnvironmentName: $vars.CIRESOURCEGROUPROOT
appServicePlanName: $vars.CIRESOURCEGROUPROOT-linux
resourceGroupName: $vars.CIRESOURCEGROUPROOT
outputs:
assemblyVersion: ${{ steps.version.outputs.assemblyVersion }}
fileVersion: ${{ steps.version.outputs.fileVersion }}
informationalVersion: ${{ steps.version.outputs.informationalVersion }}
majorMinorPatch: ${{ steps.version.outputs.majorMinorPatch }}
semVer: ${{steps.version.outputs.SemVer}}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Latest .Net SDK
uses: actions/setup-dotnet@v4
- name: Determine Semver
id: version
uses: ./.github/actions/update-semver
- name: Azure Login
uses: azure/login@v2
with:
client-id: ${{secrets.AZURE_CLIENT_ID}}
subscription-id: ${{secrets.AZURE_SUBSCRIPTION_ID}}
tenant-id: ${{secrets.AZURE_TENANT_ID}}
enable-AzPSSession: true
- name: Clean Storage Accounts
uses: ./.github/actions/clean-storage-accounts
with:
environmentName: ${{vars.CIRESOURCEGROUPROOT}}
buildAndUnitTest:
runs-on: ubuntu-latest
needs: setup
strategy:
matrix:
dotnet-version: [ '8.0.x', '6.0.x' ]
fhirSchemaVersion: ["Stu3", "R4", "R4B", "R5"]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup dotnet ${{ matrix.dotnet-version }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Build
uses: ./.github/actions/dotnet-build
with:
assemblyVersion: ${{needs.setup.outputs.assemblyVersion}}
buildConfiguration: ${{env.buildConfiguration}}
fileVersion: ${{needs.setup.outputs.fileVersion}}
informationalVersion: ${{needs.setup.outputs.informationalVersion}}
dotnetVersion: ${{matrix.dotnet-version}}
majorMinorPatch: ${{needs.setup.outputs.majorMinorPatch}}
- name: Package Web Build Artifacts
uses: ./.github/actions/package-web-build-artifacts
with:
fhirschemaversion: ${{ matrix.fhirSchemaVersion }}
majorMinorPatch: ${{needs.setup.outputs.majorMinorPatch}}
outputPath: ${{env.outputPath}}
buildConfiguration: ${{env.buildConfiguration}}
dotnetVersion: ${{matrix.dotnet-version}}
semVer: ${{needs.setup.outputs.semVer}}
- name: Generate SBOM
run: |
curl -Lo $RUNNER_TEMP/sbom-tool https://github.com/microsoft/sbom-tool/releases/latest/download/sbom-tool-linux-x64
chmod +x $RUNNER_TEMP/sbom-tool
$RUNNER_TEMP/sbom-tool generate -b ./artifacts -bc . -V Verbose
- name: Upload a Build Artifact
uses: actions/upload-artifact@v4
with:
path: ${{env.outputPath}}
runIntegrationTests:
runs-on: ubuntu-latest
needs : buildAndUnitTest
steps:
- name: Download Build Artifact for Testing
uses: actions/download-artifact@v4
with:
name: fhirBuild-8.0.x
path: artifacts