Skip to content

Commit d729bd7

Browse files
authored
Merge pull request #23 from JanssenProject/repo_sync
ci(workflows): synchronize workflows from JanssenProject/jans-cloud-native
2 parents e30193d + 4981ec1 commit d729bd7

1 file changed

Lines changed: 148 additions & 0 deletions

File tree

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# Please do not attempt to edit this flow without the direct consent from the DevOps team. This file is managed centrally.
2+
# Contact @moabu
3+
# Sonar cloud https://sonarcloud.io/organizations/janssenproject/projects
4+
name: Code quality check
5+
6+
on:
7+
push:
8+
branches:
9+
- '**'
10+
pull_request:
11+
branches:
12+
- master
13+
workflow_dispatch:
14+
jobs:
15+
build:
16+
runs-on: ubuntu-latest
17+
env:
18+
JVM_PROJECTS: |
19+
JanssenProject/jans-auth-server
20+
JanssenProject/jans-orm
21+
JanssenProject/jans-config-api
22+
JanssenProject/jans-client-api
23+
JanssenProject/jans-scim
24+
JanssenProject/jans-core
25+
JanssenProject/jans-notify
26+
JanssenProject/jans-fido2
27+
JanssenProject/jans-eleven
28+
NON_JVM_PROJECTS: |
29+
JanssenProject/jans-setup
30+
JanssenProject/jans-cli
31+
JanssenProject/docker-jans-persistence-loader
32+
JanssenProject/docker-jans-client-api
33+
JanssenProject/jans-pycloudlib
34+
JanssenProject/docker-jans-auth-server
35+
JanssenProject/docker-jans-fido2
36+
JanssenProject/docker-jans-scim
37+
JanssenProject/docker-jans-config-api
38+
JanssenProject/docker-jans-certmanager
39+
JanssenProject/docker-jans-configuration-manager
40+
JanssenProject/jans-cloud-native
41+
steps:
42+
- uses: actions/checkout@v2
43+
with:
44+
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of sonarqube analysis
45+
46+
- name: Set up JDK 11
47+
if: contains(env.JVM_PROJECTS, github.repository)
48+
uses: actions/setup-java@v2
49+
with:
50+
java-version: '11'
51+
distribution: 'adopt'
52+
53+
- name: Build with Maven
54+
if: contains(env.JVM_PROJECTS, github.repository)
55+
run: |
56+
case "$GITHUB_REPOSITORY" in
57+
"JanssenProject/jans-auth-server")
58+
echo "Run maven build for jans-auth-server "
59+
mvn clean -fae -X -pl \!client,\!static,\!server,\!rp-spring-boot jacoco:prepare-agent test install jacoco:report
60+
;;
61+
"JanssenProject/jans-client-api")
62+
echo "Run maven build for jans-client-api"
63+
mvn clean -fae -pl \!server jacoco:prepare-agent test install jacoco:report
64+
;;
65+
"JanssenProject/jans-scim")
66+
echo "Run maven build for jans-scim"
67+
mvn clean -fae -pl \!client jacoco:prepare-agent test install jacoco:report
68+
;;
69+
"JanssenProject/jans-eleven")
70+
echo "Run maven build for jans-eleven"
71+
mvn clean -fae -pl \!client,\!server jacoco:prepare-agent test jacoco:report
72+
;;
73+
"JanssenProject/jans-config-api")
74+
echo "Run maven build for jans-config-api"
75+
mvn clean -fae -DskipTests=true jacoco:prepare-agent install jacoco:report
76+
;;
77+
*)
78+
echo "Run maven build for Java repository"
79+
mvn clean -fae jacoco:prepare-agent test install jacoco:report
80+
;;
81+
esac
82+
83+
- name: Cache SonarCloud packages for JVM based project
84+
if: contains(env.JVM_PROJECTS, github.repository)
85+
uses: actions/cache@v1
86+
with:
87+
path: ~/.sonar/cache
88+
key: ${{ runner.os }}-sonar
89+
restore-keys: ${{ runner.os }}-sonar
90+
91+
- name: Cache Maven packages
92+
if: contains(env.JVM_PROJECTS, github.repository)
93+
uses: actions/cache@v1
94+
with:
95+
path: ~/.m2
96+
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
97+
restore-keys: ${{ runner.os }}-m2
98+
99+
- name: Build and analyze JVM based project
100+
if: contains(env.JVM_PROJECTS, github.repository)
101+
env:
102+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
103+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
104+
run: |
105+
case "$GITHUB_REPOSITORY" in
106+
"JanssenProject/jans-auth-server")
107+
echo "Run Sonar analysis for jans-auth-server "
108+
mvn -B -pl \!client,\!static,\!server,\!rp-spring-boot verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
109+
;;
110+
"JanssenProject/jans-client-api")
111+
echo "Run Sonar analysis for jans-client-api"
112+
mvn -B -pl \!server verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
113+
;;
114+
"JanssenProject/jans-scim")
115+
echo "Run Sonar analysis for jans-scim"
116+
mvn -B -pl \!client verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
117+
;;
118+
"JanssenProject/jans-eleven")
119+
echo "Run Sonar analysis for jans-scim"
120+
mvn -B -pl \!client,\!server verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
121+
;;
122+
"JanssenProject/jans-config-api")
123+
echo "Run Sonar analysis for jans-config-api"
124+
mvn -B -DskipTests=true verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
125+
;;
126+
*)
127+
echo "Run maven build for Java repository"
128+
mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
129+
;;
130+
esac
131+
132+
- name: Convert repo org name to lowercase for non JVM projects
133+
if: contains(env.NON_JVM_PROJECTS, github.repository)
134+
env:
135+
REPO_OWNER: ${{ github.repository_owner }}
136+
run: |
137+
echo "REPO_ORG=${REPO_OWNER,,}" >>${GITHUB_ENV}
138+
139+
- name: SonarCloud Scan for non-JVM project
140+
if: contains(env.NON_JVM_PROJECTS, github.repository)
141+
uses: SonarSource/sonarcloud-github-action@master
142+
with:
143+
args: >
144+
-Dsonar.organization=${{ env.REPO_ORG }}
145+
-Dsonar.projectKey=${{ github.repository_owner }}_${{ github.event.repository.name }}
146+
env:
147+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
148+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

0 commit comments

Comments
 (0)