Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 52 additions & 55 deletions .github/workflows/docker-no-ssl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,80 +4,77 @@ on:
release:
types: [published]

# pull_request:
# branches: main
pull_request:
branches: [main]

jobs:
version-checker:
uses: ./.github/workflows/version-setup.yml

build:
runs-on: ubuntu-latest
needs: version-checker

permissions:
contents: read
packages: write

outputs:
jar_version: ${{ steps.bump.outputs.jar_version }}

steps:
- uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'

- name: change Web.xml to avoid use of ssl
id: webxml
run: |
rm ${{ github.workspace }}/src/main/webapp/WEB-INF/web.xml
mv ${{ github.workspace }}/docker/tomcat/web-no-ssl.xml ${{ github.workspace }}/src/main/webapp/WEB-INF/web.xml

- name: Build a package
run: |
mvn versions:set -DnewVersion="${{ github.event.release.tag_name }}"
mvn -B -U --file pom.xml clean package -P release

- name: Bump jar version
id: bump
run: |
PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "jar_version=${PROJECT_VERSION}" >> $GITHUB_OUTPUT

- name: Temporarily save jar artifact
uses: actions/upload-artifact@v3
with:
name: jar-artifact
path: ${{ github.workspace }}/target/*.war
retention-days: 1
- uses: actions/checkout@v4

- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: "11"
distribution: "temurin"

- name: change Web.xml to avoid use of ssl
id: webxml
run: |
rm ${{ github.workspace }}/src/main/webapp/WEB-INF/web.xml
mv ${{ github.workspace }}/docker/tomcat/web-no-ssl.xml ${{ github.workspace }}/src/main/webapp/WEB-INF/web.xml

- name: Build a package
run: |
mvn -B -U --file pom.xml clean package -P release \
"-Drevision=${{ needs.version-checker.outputs.revision }}" \
"-Dsha1=${{ needs.version-checker.outputs.sha1 }}" \
"-Dchangelist=${{ needs.version-checker.outputs.changelist }}"

- name: Temporarily save jar artifact
uses: actions/upload-artifact@v4
with:
name: jar-artifact
path: ${{ github.workspace }}/target/*.war
retention-days: 1

deploy:
runs-on: ubuntu-latest
needs: build
needs: [build, version-checker]

steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: jar-artifact
path: target/

- name: Docker build
run: |
docker build . --file docker/webstudio.dockerfile --target image-no-ssl \
-t ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio-no-ssl:${{needs.build.outputs.jar_version}} \
-t ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio-no-ssl:latest \
--build-arg WEBSTUDIO_WAR_PATH=target/webstudio-${{needs.build.outputs.jar_version}}.war
- name: Docker build
run: |
docker build . --file docker/webstudio.dockerfile --target image-no-ssl \
-t ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio-no-ssl:${{ needs.version-checker.outputs.flattened_version }} \
-t ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio-no-ssl:latest \
--build-arg WEBSTUDIO_WAR_PATH=target/webstudio-${{ needs.version-checker.outputs.flattened_version }}.war

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Docker push
run: |
docker push ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio-no-ssl:${{needs.build.outputs.jar_version}}
- name: Docker push
run: |
docker push ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio-no-ssl:${{ needs.version-checker.outputs.flattened_version }}

# run:
# runs-on: ubuntu-18.04
Expand All @@ -86,4 +83,4 @@ jobs:
# steps:
# - name: Run container
# run: |
# docker run ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio-no-ssl:${{needs.build.outputs.jar_version}}
# docker run ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio-no-ssl:${{ needs.version-checker.outputs.flattened_version }}
95 changes: 46 additions & 49 deletions .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,75 +8,72 @@ on:
# branches: main

jobs:
version-checker:
uses: ./.github/workflows/version-setup.yml

build:
runs-on: ubuntu-latest
needs: version-checker

permissions:
contents: read
packages: write

outputs:
jar_version: ${{ steps.bump.outputs.jar_version }}

steps:
- uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'

- name: Build a package
run: |
mvn versions:set -DnewVersion="${{ github.event.release.tag_name }}"
mvn -B -U --file pom.xml clean package -P release

- name: Bump jar version
id: bump
run: |
PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "jar_version=${PROJECT_VERSION}" >> $GITHUB_OUTPUT

- name: Temporarily save jar artifact
uses: actions/upload-artifact@v3
with:
name: jar-artifact
path: ${{ github.workspace }}/target/*.war
retention-days: 1
- uses: actions/checkout@v4

- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: "11"
distribution: "temurin"

- name: Build a package
run: |
mvn -B -U --file pom.xml clean package -P release \
"-Drevision=${{ needs.version-checker.outputs.revision }}" \
"-Dsha1=${{ needs.version-checker.outputs.sha1 }}" \
"-Dchangelist=${{ needs.version-checker.outputs.changelist }}"

- name: Temporarily save jar artifact
uses: actions/upload-artifact@v4
with:
name: jar-artifact
path: ${{ github.workspace }}/target/*.war
retention-days: 1

deploy:
runs-on: ubuntu-latest
needs: build
needs: [build, version-checker]

steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: jar-artifact
path: target/

- name: Docker build
run: |
docker build . --file docker/webstudio.dockerfile --target image-with-ssl \
-t ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio:${{needs.build.outputs.jar_version}} \
-t ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio:latest \
--build-arg WEBSTUDIO_WAR_PATH=target/webstudio-${{needs.build.outputs.jar_version}}.war

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Docker push
run: |
docker push ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio:${{needs.build.outputs.jar_version}}
- name: Docker build
run: |
docker build . --file docker/webstudio.dockerfile --target image-with-ssl \
-t ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio:${{needs.version-checker.outputs.flattened_version}} \
-t ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio:latest \
--build-arg WEBSTUDIO_WAR_PATH=target/webstudio-${{needs.version-checker.outputs.flattened_version}}.war

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Docker push
run: |
docker push ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio:${{needs.version-checker.outputs.flattened_version}}
# run:
# runs-on: ubuntu-18.04
# needs: [build, deploy]

# steps:
# - name: Run container
# run: |
# docker run ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio:${{needs.build.outputs.jar_version}}
# docker run ${{ secrets.DOCKER_HUB_REPO }}/${{ secrets.DOCKER_HUB_REPO }}-webstudio:${{needs.version-checker.outputs.flattened_version}}
38 changes: 19 additions & 19 deletions .github/workflows/sonarcloud-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,52 +7,52 @@ on:
types: [opened, synchronize, reopened]
jobs:
coverage:
runs-on: 'ubuntu-latest'
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 11
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
distribution: "temurin"
java-version: "11"
- name: Cache SonarCloud packages
uses: actions/cache@v1
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Build and analyze
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=geosiris-technologies_webstudio
build:

build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
distribution: [ 'zulu', 'temurin', 'microsoft', 'corretto', 'liberica' ]
java: [ '11' ]
os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
distribution: ["zulu", "temurin", "microsoft", "corretto", "liberica"]
java: ["11"]
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
name: Java ${{ matrix.Java }} (${{ matrix.distribution }})
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java }}
- name: Cache Maven packages
uses: actions/cache@v1
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
run: mvn -B compile --file pom.xml
65 changes: 65 additions & 0 deletions .github/workflows/version-setup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# .github/workflows/version-setup.yml
name: Maven Version Setup

on:
workflow_call:
outputs:
revision:
description: "Revision"
value: ${{ jobs.version.outputs.revision }}
sha1:
description: "SHA1"
value: ${{ jobs.version.outputs.sha1 }}
changelist:
description: "Changelist"
value: ${{ jobs.version.outputs.changelist }}
flattened_version:
description: "Flattened Version"
value: ${{ jobs.version.outputs.flattened_version }}

jobs:
version:
runs-on: ubuntu-latest
outputs:
revision: ${{ steps.setver.outputs.revision }}
sha1: ${{ steps.setver.outputs.sha1 }}
changelist: ${{ steps.setver.outputs.changelist }}
flattened_version: ${{ steps.setver.outputs.flattened_version }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: setver
run: |
COMMIT_SHA_LONG="${{ github.sha }}"
COMMIT_SHA_SHORT="${COMMIT_SHA_LONG:0:7}"

REVISION_VAR=""
SHA1_VAR=""
CHANGELIST_VAR=""

if [[ "${{ github.ref_type }}" == "tag" ]]; then
TAG_NAME="${{ github.ref_name }}"
TAG_CLEAN=$(echo "$TAG_NAME" | sed 's/^v//')

REVISION_VAR="$TAG_CLEAN"
SHA1_VAR=""
CHANGELIST_VAR=""
echo "🏗️ Version de Release (Tag) détectée : $TAG_CLEAN"
else
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
VERSION_BASE=$(echo "$LAST_TAG" | sed 's/^v//')
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION_BASE"
NEXT_PATCH=$((PATCH + 1))

REVISION_VAR="$MAJOR.$MINOR.$NEXT_PATCH"
SHA1_VAR="-$COMMIT_SHA_SHORT"
CHANGELIST_VAR="-SNAPSHOT"
echo "🧪 Version Snapshot détectée (basée sur $LAST_TAG) : ${REVISION_VAR}${SHA1_VAR}${CHANGELIST_VAR}"
fi

echo "revision=$REVISION_VAR" >> "$GITHUB_OUTPUT"
echo "sha1=$SHA1_VAR" >> "$GITHUB_OUTPUT"
echo "changelist=$CHANGELIST_VAR" >> "$GITHUB_OUTPUT"
echo "flattened_version=${REVISION_VAR}${SHA1_VAR}${CHANGELIST_VAR}" >> "$GITHUB_OUTPUT"
echo "➡️ Variables de sortie définies : revision='$REVISION_VAR', sha1='$SHA1_VAR', changelist='$CHANGELIST_VAR'"
Loading
Loading