Add questions - initial first few questions #144
Workflow file for this run
This file contains 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
# This workflow will build a .NET project | |
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net | |
name: Build and Test | |
env: | |
DOTNET_VERSION: '8.x' | |
NODE_VERSION: '20' | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
## Include all git history (fetch depth 0) for enhanced SonarCloud analysis (default is 1 for most recent commit) | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: ${{ env.DOTNET_VERSION }} | |
- name: Setup Node.js environment | |
uses: actions/[email protected] | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
#### | |
## Setup for SonarCloud | |
#### | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: 17 | |
distribution: 'zulu' | |
- name: Cache SonarCloud packages | |
uses: actions/cache@v4 | |
with: | |
path: ~\sonar\cache | |
key: ${{ runner.os }}-sonar | |
restore-keys: ${{ runner.os }}-sonar | |
- name: Install SonarCloud scanner | |
if: steps.cache-sonar-scanner.outputs.cache-hit != 'true' | |
shell: pwsh | |
working-directory: ./src/ServiceAssessmentService | |
run: | | |
dotnet tool install --global dotnet-sonarscanner | |
#### | |
## Build and test the Web UI code | |
#### | |
- name: Cache node_modules | |
id: node_modules-cache-webapp | |
uses: actions/cache@v4 | |
with: | |
path: ./src/ServiceAssessmentService/ServiceAssessmentService.WebApp/node_modules | |
key: ${{ runner.os }}-node_modules-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
- name: Install NPM dependencies (Web UI) | |
working-directory: ./src/ServiceAssessmentService/ServiceAssessmentService.WebApp | |
run: npm install | |
- name: Set up dependency caching for faster builds | |
uses: actions/cache@v4 | |
with: | |
path: ~/.nuget/packages | |
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-nuget- | |
- name: Build Web UI (webpack) | |
working-directory: ./src/ServiceAssessmentService/ServiceAssessmentService.WebApp | |
run: npm run buildCi | |
## TODO: npm run test | |
#### | |
## Build and test the Backend which serves the Web UI | |
#### | |
- name: Restore dependencies | |
working-directory: ./src/ServiceAssessmentService | |
run: dotnet restore | |
- name: Verify formatting | |
working-directory: ./src/ServiceAssessmentService | |
run: dotnet format --no-restore --verify-no-changes | |
- name: Begin SonarCloud analysis (start before any build/test steps) | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
working-directory: ./src/ServiceAssessmentService | |
shell: pwsh | |
run: | | |
dotnet-sonarscanner begin /k:"DFE-Digital_service-assessment-service" /o:"dfe-digital" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" | |
- name: Build with dotnet | |
working-directory: ./src/ServiceAssessmentService | |
run: dotnet build --no-restore --configuration Release | |
- name: Test | |
working-directory: ./src/ServiceAssessmentService | |
run: dotnet test --no-build --verbosity normal | |
- name: End SonarCloud analysis and upload results (end after all build/test steps) | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
working-directory: ./src/ServiceAssessmentService | |
shell: pwsh | |
run: | | |
dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}" | |