Skip to content
Snippets Groups Projects
Commit c06200b2 authored by Emmanuel Bruno's avatar Emmanuel Bruno
Browse files

initial release.

parent e172c2ab
Branches
Tags v0.1
No related merge requests found
name: 'Java CI Build'
description: 'Build a Java CI project with maven and Docker'
runs:
using: "composite"
steps:
# build the project in a docker container with a specific maven settings.xml
# it uses env variables from github secrets for the credentials
# to github, dockerhub and sonar.
- name: Build and test with Maven in docker
run: ./mvn.sh clean verify
- name: Deploy Maven Artifacts
run: ./mvn.sh deploy
- name: Notify dedicated teams channel of Success
uses: dragos-cojocari/ms-teams-notification@v1.0.0
if: ${{ success() }}
with:
github-token: ${{ github.token }} # this will use the runner's token.
ms-teams-webhook-uri: ${{ secrets.MSTEAMS_WEBHOOK }}
notification-summary: Build and Deploy success.
notification-color: 28a745
timezone: Europe/Paris
- name: Notify dedicated teams channel of Failure
uses: dragos-cojocari/ms-teams-notification@v1.0.0
if: ${{ failure() }}
with:
github-token: ${{ github.token }} # this will use the runner's token.
ms-teams-webhook-uri: ${{ secrets.MSTEAMS_WEBHOOK }}
notification-summary: Build and Deploy failure.
notification-color: dc3545
timezone: Europe/Paris
mvn versions:display-dependency-updates
mvn versions:display-plugin-updates
mvn versions:display-property-updates
<!-- A MAVEN SETTINGS FILE TO BE USED IN CI -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>github</id>
<username>${env.GITHUBLOGIN}</username>
<password>${env.GITHUBPASSWORD}</password>
</server>
<server>
<id>dockerhub</id>
<username>${env.DOCKER_USERNAME}</username>
<password>${env.DOCKER_PASSWORD}</password>
</server>
<server>
<id>github.pages</id>
<username>git</username>
<configuration>
<scmVersionType>branch</scmVersionType>
<scmVersion>gh-pages</scmVersion>
</configuration>
</server>
</servers>
<profiles>
<profile>
<id>sonar</id>
<properties>
<sonar.host.url>${env.SONAR_URL}</sonar.host.url>
<sonar.login>${env.SONAR_TOKEN}</sonar.login>
</properties>
</profile>
</profiles>
</settings>
mvn.sh 0 → 100755
#!/bin/bash
export MAVEN_IMAGE=brunoe/maven:3.8.6-eclipse-temurin-17
docker run \
--env GITHUBLOGIN=$GITHUBLOGIN \
--env GITHUBPASSWORD=$GITHUBPASSWORD \
--mount type=bind,source=${HOME}/.m2,target=/var/maven/.m2 \
--mount type=bind,source=${HOME}/.ssh,target=/home/user/.ssh \
--mount type=bind,source=${HOME}/.gitconfig,target=/home/user/.gitconfig,readonly \
--mount type=bind,source="$(pwd)",target=/usr/src/mymaven \
--workdir /usr/src/mymaven \
--rm \
--env PUID=`id -u` -e PGID=`id -g` \
--env MAVEN_CONFIG=/var/maven/.m2 \
$MAVEN_IMAGE \
runuser --user user --group user -- mvn -B -e -T 1C -Duser.home=/var/maven --settings /usr/src/mymaven/CI_Java/ci-settings.xml "$@"
./mvn.sh sonar:sonar \
-D sonar.branch.name=$(git rev-parse --abbrev-ref HEAD|tr / _ ) \
-DskipTests=true \
-Dsonar.language=java \
-Dsonar.report.export.path=sonar-report.json \
-Dsonar.host.url=http://localhost:9000 \
--activate-profiles sonar
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment