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/.gitignore b/.gitignore index e0af672bf..0afa44753 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,7 @@ obj /AdminUI/LearningHub.Nhs.AdminUI/Properties/launchSettings.json /WebAPI/LearningHub.Nhs.API/Properties/launchSettings.json /WebAPI/LearningHub.Nhs.API/appsettings.Development.json +/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.dbmdl +/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.jfm +/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Staging.Database/LearningHub.Nhs.Migration.Staging.Database.dbmdl +/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Staging.Database/LearningHub.Nhs.Migration.Staging.Database.jfm diff --git a/LearningHub.Nhs.WebUI/Program.cs b/LearningHub.Nhs.WebUI/Program.cs index 2352d0bc3..ec9685f50 100644 --- a/LearningHub.Nhs.WebUI/Program.cs +++ b/LearningHub.Nhs.WebUI/Program.cs @@ -33,7 +33,7 @@ var builder = WebApplication.CreateBuilder(args); - builder.Configuration.AddUserSecrets(string.Empty); + builder.Configuration.AddUserSecrets("a2ecb5d2-cf13-4551-9cb6-3d86dfbcf8ef"); builder.Logging.ClearProviders(); builder.Logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); diff --git a/README.md b/README.md index 2ed35e5ab..9e666ee7b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The Learning Hub is provided and supported by the Technology Enhanced Learning P # Getting Started -## Required installs +## Required installs - [Visual Studio Professional 2022](https://visualstudio.microsoft.com/downloads/) or other suitable An IDE that supports the Microsoft Tech Stack - Make sure you have the [NPM Task Runner](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner) extension - SQL Server 2019 @@ -94,7 +94,7 @@ Create a Local IIS launch profile for the following projects: - LearningHub.Nhs.WebUI = https://lh-web.dev.local 7. Tick the checkbox for **Enable Anonymous Authentication**. -## Rebuild and run +## Rebuild and run 1. Rebuild the solution 2. Set **LearningHub.Nhs.WebUI** as the startup Project