-
Notifications
You must be signed in to change notification settings - Fork 0
144 lines (123 loc) · 4.83 KB
/
build-and-analyze.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
name: Build, Test and Analyze
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
check-slns:
name: Check sln files
if: ((github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false) || github.event_name == 'push') && github.repository_owner == 'Altinn' && github.actor != 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
8.0.x
- uses: actions/setup-node@v4
with:
node-version: 20
- uses: pnpm/action-setup@v3
with:
version: 9
run_install: |
- cwd: .github/scripts
args: [--frozen-lockfile]
- args: [--global, tsx]
- name: Update all sln files
run: tsx ./.github/scripts/update-sln-files.mts
- name: Assert that no sln files have changed
run: git diff --exit-code
build-and-test:
name: Build and Test
if: ((github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false) || github.event_name == 'push') && github.repository_owner == 'Altinn' && github.actor != 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
8.0.x
# Not used here - but used in the release job
# If this breaks, make sure to update both here
# and in the release job - otherwise next release
# will fail
- uses: pnpm/action-setup@v3
with:
version: 9
run_install: |
- cwd: .github/scripts
args: [--frozen-lockfile]
- args: [--global, tsx]
- name: Build
run: dotnet build -c Release -bl:binlog/build.binlog
- name: Test
run: dotnet test -c Release --no-build -bl:binlog/test.binlog
- name: Pack
run: dotnet pack -c Release --no-build -bl:binlog/pack.binlog
- name: Create binlog artifact
uses: actions/upload-artifact@v4
with:
name: binlog
path: binlog/*.binlog
if-no-files-found: error
retention-days: 1
- name: Create packages artifact
uses: actions/upload-artifact@v4
with:
name: packages
path: artifacts/**/*.nupkg
if-no-files-found: error
retention-days: 1
# analyze:
# if: ((github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false) || github.event_name == 'push') && github.repository_owner == 'Altinn' && github.actor != 'dependabot[bot]'
# name: Analyze
# runs-on: ubuntu-latest
# steps:
# - name: Setup .NET
# uses: actions/setup-dotnet@v4
# with:
# dotnet-version: |
# 8.0.x
# - name: Set up JDK 17
# uses: actions/setup-java@v4
# with:
# distribution: 'microsoft'
# java-version: 17
# - uses: actions/checkout@v4
# with:
# fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
# - name: Cache SonarCloud packages
# uses: actions/cache@v4
# with:
# path: ~\sonar\cache
# key: ${{ runner.os }}-sonar
# restore-keys: ${{ runner.os }}-sonar
# - name: Cache SonarCloud scanner
# id: cache-sonar-scanner
# uses: actions/cache@v4
# with:
# path: .\.sonar\scanner
# key: ${{ runner.os }}-sonar-scanner
# restore-keys: ${{ runner.os }}-sonar-scanner
# - name: Install SonarCloud scanner
# if: steps.cache-sonar-scanner.outputs.cache-hit != 'true'
# shell: bash
# run: |
# mkdir -p ./.sonar/scanner
# dotnet tool update dotnet-sonarscanner --tool-path ./.sonar/scanner
# - name: Analyze
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
# shell: bash
# run: |
# dotnet tool install --global dotnet-coverage
# ./.sonar/scanner/dotnet-sonarscanner begin /k:"Altinn_altinn-resource-registry" /o:"altinn" /d:sonar.login="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.cs.vstest.reportsPaths="TestResults/**/*.trx" /d:sonar.cs.vscoveragexml.reportsPaths="TestResults/coverage.xml"
# dotnet build ResourceRegistry.sln --no-incremental
# dotnet coverage collect 'dotnet test --no-build --results-directory TestResults/' -f xml -o 'TestResults/coverage.xml'
# ./.sonar/scanner/dotnet-sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}"