-
Notifications
You must be signed in to change notification settings - Fork 7
130 lines (128 loc) · 4.26 KB
/
ci.yml
File metadata and controls
130 lines (128 loc) · 4.26 KB
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
name: Trevas CI
on:
push:
pull_request:
types: [opened, synchronize, reopened]
jobs:
test:
name: Run Trevas tests
if: (github.repository != 'InseeFr/Trevas' &&
github.event_name == 'push') ||
(github.event.pull_request.head.repo.fork == true ||
(github.event.pull_request.head.repo.fork == false &&
github.event.pull_request.merged == false))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Maven Central Repository
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "adopt"
- uses: s4u/maven-settings-action@v3.0.0
with:
githubServer: false
servers: |
[{
"id": "Github",
"username": "${{ secrets.GH_PACKAGES_USERNAME }}",
"password": "${{ secrets.GH_PACKAGES_PASSWORD }}"
}]
- name: Test
run: mvn test
package:
name: Package Trevas modules
# Filter thanks to test job
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Maven Central Repository
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "adopt"
- uses: s4u/maven-settings-action@v3.0.0
with:
githubServer: false
servers: |
[{
"id": "Github",
"username": "${{ secrets.GH_PACKAGES_USERNAME }}",
"password": "${{ secrets.GH_PACKAGES_PASSWORD }}"
}]
- name: Test
run: mvn package
test-sonar-package:
name: Run Trevas tests with coverage & sonar checks
# Trevas main repo commit branch or merged PR
if: github.repository == 'InseeFr/Trevas' &&
(github.event_name == 'push' ||
github.event.pull_request.head.repo.fork == false ||
(github.event.pull_request.head.repo.fork == true &&
github.event.pull_request.merged == true))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Maven Central Repository
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "adopt"
- uses: s4u/maven-settings-action@v3.0.0
with:
githubServer: false
servers: |
[{
"id": "Github",
"username": "${{ secrets.GH_PACKAGES_USERNAME }}",
"password": "${{ secrets.GH_PACKAGES_PASSWORD }}"
}]
- name: Test, package and analyze with maven & SonarCloud
run: mvn verify sonar:sonar -Pcoverage -Dsonar.projectKey=InseeFr_Trevas -Dsonar.organization=inseefr -Dsonar.host.url=https://sonarcloud.io
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
publish-release:
name: Publish Trevas modules on Maven
# Pre filter thanks to test-sonar-package job
# Temp
# if: startsWith(github.event.ref, 'refs/tags/v')
if: github.ref == 'refs/heads/master'
needs: test-sonar-package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Import GPG Key
uses: crazy-max/ghaction-import-gpg@v1
env:
GPG_PRIVATE_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
- uses: s4u/maven-settings-action@v3.0.0
with:
githubServer: false
servers: |
[
{
"id": "Github",
"username": "${{ secrets.GH_PACKAGES_USERNAME }}",
"password": "${{ secrets.GH_PACKAGES_PASSWORD }}"
},
{
"id": "ossrh",
"username": "${{ secrets.OSSRH_USERNAME }}",
"password": "${{ secrets.OSSRH_TOKEN }}"
}
]
- name: Publish Trevas
run: mvn -B deploy -Prelease -DskipTests=true --no-transfer-progress
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}