diff --git a/.github/azure-pipeline-database-ci.yml b/.github/azure-pipeline-database-ci.yml new file mode 100644 index 000000000..8415569c7 --- /dev/null +++ b/.github/azure-pipeline-database-ci.yml @@ -0,0 +1,30 @@ +trigger: + - CI +resources: + repositories: + - repository: self + type: git + ref: refs/heads/CI +jobs: +- job: Job_1 + displayName: Agent job + pool: + vmImage: windows-2019 + steps: + - checkout: self + clean: true + fetchTags: false + - task: MSBuild@1 + displayName: Build solution **/LearningHub.Nhs.Database.sqlproj + inputs: + solution: '**/LearningHub.Nhs.Database.sqlproj' + msbuildArchitecture: x64 + - task: CopyFiles@2 + displayName: Copy SQL Dacpac File + inputs: + SourceFolder: $(agent.builddirectory)\s + Contents: '**\LearningHub.Nhs.Database.dacpac' + TargetFolder: $(build.artifactstagingdirectory) + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact: drop' +... diff --git a/.github/azure-pipeline-openapi-reportapi-ci.yml b/.github/azure-pipeline-openapi-reportapi-ci.yml new file mode 100644 index 000000000..0446b79c2 --- /dev/null +++ b/.github/azure-pipeline-openapi-reportapi-ci.yml @@ -0,0 +1,85 @@ +# Agent Queue 'Azure Pipelines' was used with unrecognized Agent Specification, vmImage property must be specified to determine image - https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#software +variables: +- name: BuildParameters.RestoreBuildProjects + value: '**/*.csproj' +- name: BuildParameters.projects + value: '**/*.csproj' +trigger: + - CI +name: $(date:yyyyMMdd)$(rev:.r) +resources: + repositories: + - repository: self + type: git + ref: refs/heads/RC +jobs: +- job: Job_1 + displayName: Agent job + pool: + vmImage: windows-latest + steps: + - checkout: self + clean: true + fetchTags: false + - task: NuGetToolInstaller@1 + displayName: Use NuGet 5.8 + inputs: + versionSpec: 5.8 + - task: NuGetCommand@2 + displayName: NuGet restore + inputs: + feedRestore: d99eaf2c-ad74-4a35-876e-f7dc1e45a604 + - task: DotNetCoreCLI@2 + displayName: Restore + inputs: + command: restore + projects: $(BuildParameters.RestoreBuildProjects) + feedRestore: d99eaf2c-ad74-4a35-876e-f7dc1e45a604 + - task: DotNetCoreCLI@2 + displayName: Build + inputs: + projects: $(BuildParameters.projects) + arguments: --configuration $(BuildConfiguration) /p:Platform=x64 + - task: DotNetCoreCLI@2 + displayName: Test OpenAPI + inputs: + command: test + projects: '**/*LearningHub.Nhs.OpenApi.Tests.csproj' + arguments: --configuration Debug + - task: DotNetCoreCLI@2 + displayName: Test ReportAPI + inputs: + command: test + projects: '**/*LearningHub.Nhs.ReportApi.Services.UnitTests.csproj' + arguments: --configuration Debug + - task: DotNetCoreCLI@2 + displayName: Publish OpenAPI + inputs: + command: publish + publishWebProjects: false + projects: '**/*LearningHub.NHS.OpenAPI.csproj' + arguments: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)/OpenAPI + zipAfterPublish: True + - task: PublishBuildArtifacts@1 + displayName: Publish Artifact OpenAPI + condition: succeededOrFailed() + inputs: + PathtoPublish: $(build.artifactstagingdirectory)/OpenAPI + ArtifactName: OpenAPI + TargetPath: '\\my\share\$(Build.DefinitionName)\$(Build.BuildNumber)' + - task: DotNetCoreCLI@2 + displayName: Publish ReportAPI + inputs: + command: publish + publishWebProjects: false + projects: '**/*LearningHub.Nhs.ReportApi.csproj' + arguments: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)/ReportAPI + zipAfterPublish: True + - task: PublishBuildArtifacts@1 + displayName: Publish Artifact ReportAPI + condition: succeededOrFailed() + inputs: + PathtoPublish: $(build.artifactstagingdirectory)/ReportAPI + ArtifactName: ReportAPI + TargetPath: '\\my\share\$(Build.DefinitionName)\$(Build.BuildNumber)' +... diff --git a/.github/azure-pipeline-webui-ci.yml b/.github/azure-pipeline-webui-ci.yml new file mode 100644 index 000000000..509faf6a5 --- /dev/null +++ b/.github/azure-pipeline-webui-ci.yml @@ -0,0 +1,112 @@ +# Variable Group 'UAT - Variable Group' was defined in the Variables tab +variables: +- name: BuildParameters.RestoreBuildProjects + value: '**/*.csproj' +- name: BuildParameters.TestProjects + value: '**/*[Tt]ests/*.csproj' +trigger: + - CI +name: $(date:yyyyMMdd)$(rev:.r) +resources: + repositories: + - repository: self + type: git + ref: refs/heads/CI +jobs: +- job: Job_1 + displayName: Agent job + pool: + vmImage: windows-latest + steps: + - checkout: self + clean: true + fetchTags: true + - task: NodeTool@0 + displayName: Use Node 12.19 (otherwise node-sass 4.13 will error - Azure build agent defaults to v14.15 which is incompatible) + inputs: + versionSpec: 12.19 + - task: Npm@1 + displayName: npm custom + inputs: + command: custom + workingDir: LearningHub.Nhs.WebUI + verbose: false + customCommand: install -f + - task: Npm@1 + displayName: run webpack build + inputs: + command: custom + workingDir: LearningHub.Nhs.WebUI + verbose: false + customCommand: run build + - task: NuGetToolInstaller@1 + displayName: Use NuGet 5.8 + inputs: + versionSpec: 5.8 + - task: NuGetCommand@2 + displayName: NuGet restore + inputs: + feedRestore: d99eaf2c-ad74-4a35-876e-f7dc1e45a604 + - task: DotNetCoreCLI@2 + displayName: Restore + inputs: + command: restore + projects: $(BuildParameters.RestoreBuildProjects) + - task: DotNetCoreCLI@2 + displayName: Build + inputs: + projects: $(BuildParameters.RestoreBuildProjects) + arguments: --configuration $(BuildConfiguration) + - task: DotNetCoreCLI@2 + displayName: Test + enabled: False + inputs: + command: test + projects: $(BuildParameters.TestProjects) + arguments: --configuration $(BuildConfiguration) + - task: DotNetCoreCLI@2 + displayName: Publish WebUI + inputs: + command: publish + publishWebProjects: false + projects: '**/*LearningHub.Nhs.WebUI.csproj' + arguments: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)/WebUI + zipAfterPublish: True + - task: PublishBuildArtifacts@1 + displayName: Publish Artifact WebUI + condition: succeededOrFailed() + inputs: + PathtoPublish: $(Build.ArtifactStagingDirectory)/WebUI + ArtifactName: WebUI + TargetPath: '\\my\share\$(Build.DefinitionName)\$(Build.BuildNumber)' + - task: DotNetCoreCLI@2 + displayName: Publish AdminUI + inputs: + command: publish + publishWebProjects: false + projects: '**/*LearningHub.Nhs.AdminUI.csproj' + arguments: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)/AdminUI + zipAfterPublish: True + - task: PublishBuildArtifacts@1 + displayName: Publish Artifact AdminUI + condition: succeededOrFailed() + inputs: + PathtoPublish: $(Build.ArtifactStagingDirectory)/AdminUI + ArtifactName: AdminUI + TargetPath: '\\my\share\$(Build.DefinitionName)\$(Build.BuildNumber)' + - task: DotNetCoreCLI@2 + displayName: Publish WebAPI + inputs: + command: publish + publishWebProjects: false + projects: '**/*LearningHub.Nhs.Api.csproj' + arguments: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)/WebAPI + zipAfterPublish: True + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact WebAPI ' + condition: succeededOrFailed() + inputs: + PathtoPublish: $(Build.ArtifactStagingDirectory)/WebAPI + ArtifactName: WebAPI + TargetPath: '\\my\share\$(Build.DefinitionName)\$(Build.BuildNumber)' +... diff --git a/README.md b/README.md index d7454219f..128876173 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Introduction +# Introduction This is the official open-source repository for the [Learning Hub](https://learninghub.nhs.uk/) platform. The Learning Hub is the national digital learning platform providing easy access to a wide range of educational resources and support for the health and care workforce and educators. @@ -92,7 +92,7 @@ Create a Local IIS launch profile for the following projects: - LearningHub.Nhs.AdminUI = https://lh-admin.dev.local - LearningHub.Nhs.WebAPI = https://lh-api.dev.local - LearningHub.Nhs.WebUI = https://lh-web.dev.local -7. Tick the checkbox for **Enable Anonymous Authentication**. +7. Tick the checkbox for **Enable Anonymous Authentication**. ## Rebuild and run