Skip to content

Switch URLs from CamelCase to kebab-case #193

Switch URLs from CamelCase to kebab-case

Switch URLs from CamelCase to kebab-case #193

Workflow file for this run

# 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 --configuration Release
- 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 }}"