diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 96aba358..e45c02a4 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -4,30 +4,133 @@ on:
push:
tags:
- "*"
+ workflow_dispatch:
jobs:
deployment:
+ permissions:
+ packages: write
environment: deploy
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 11
- uses: actions/setup-java@v1
- with:
- java-version: 11
- server-id: openconext-releases
- server-username: MAVEN_USERNAME
- server-password: MAVEN_PASSWORD
- - name: Set up cache
- uses: actions/cache@v1
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- - name: Deploy with Maven
- run: mvn --batch-mode deploy -DskipTests
- env:
- MAVEN_USERNAME: ${{ secrets.BUILD_USERNAME }}
- MAVEN_PASSWORD: ${{ secrets.BUILD_PASSWORD }}
+ - uses: actions/checkout@v4
+
+ - uses: actions/setup-node@v4
+ with:
+ node-version: "16"
+
+ - uses: actions/setup-java@v4
+ with:
+ java-version: 11
+ distribution: "temurin"
+ server-id: openconext-releases
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+
+ - uses: actions/cache@v4
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+
+ - name: Determine the version
+ run: echo "version=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_OUTPUT
+ id: versioncheck
+
+ - name: Exit when workflow_dispatch is triggered, and the version does not contain SNAPSHOT in it's name
+ run: |
+ echo "Only SNAPSHOT releases can be triggered with the workflow_dispatch"
+ exit 1
+ if: github.event_name == 'workflow_dispatch' && ( !endsWith(steps.versioncheck.outputs.version, '-SNAPSHOT'))
+
+ - name: Exit when a production build is triggered, and the github tag is not the same as the version in pom.xml
+ run: |
+ echo "Project version ${{ steps.versioncheck.outputs.version }} does not match git tag ${{ github.ref_name }}"
+ exit 1
+ if: github.event_name != 'workflow_dispatch' && steps.versioncheck.outputs.version != github.ref_name
+
+ - name: Set up JDK 11 for snapshots
+ uses: actions/setup-java@v4
+ with:
+ java-version: "11"
+ distribution: "temurin"
+ cache: "maven"
+ server-id: openconext-snapshots
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+ if: ( endsWith(steps.versioncheck.outputs.version, '-SNAPSHOT'))
+
+ - name: Set up JDK 11 for releases
+ uses: actions/setup-java@v4
+ with:
+ java-version: "11"
+ distribution: "temurin"
+ cache: "maven"
+ server-id: openconext-releases
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+ if: ${{!( endsWith(steps.versioncheck.outputs.version, '-SNAPSHOT')) }}
+
+ - name: Deploy with Maven
+ run: mvn --batch-mode deploy -DskipTests
+ env:
+ MAVEN_USERNAME: ${{ secrets.BUILD_USERNAME }}
+ MAVEN_PASSWORD: ${{ secrets.BUILD_PASSWORD }}
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Extract metadata (tags, labels) for Docker IDP
+ id: meta_idp
+ uses: docker/metadata-action@v5
+ with:
+ images: ghcr.io/openconext/mujina/mujina-idp
+ flavor: |
+ latest=false
+ tags: |
+ type=ref,event=tag
+ type=semver,pattern={{version}},value=${{ steps.versioncheck.outputs.version }}
+ type=sha
+
+ - name: Extract metadata (tags, labels) for Docker SP
+ id: meta_sp
+ uses: docker/metadata-action@v5
+ with:
+ images: ghcr.io/openconext/mujina/mujina-sp
+ flavor: |
+ latest=false
+ tags: |
+ type=ref,event=tag
+ type=semver,pattern={{version}},value=${{ steps.versioncheck.outputs.version }}
+ type=sha
+ type=raw,event=tag,value=latest
+ type=raw,event=workflow_dispatch,value=snapshot
+
+ - name: Build and push the mujina idp image
+ uses: docker/build-push-action@v5
+ with:
+ context: mujina-idp
+ file: mujina-idp/docker/Dockerfile
+ platforms: linux/amd64
+ push: true
+ tags: ${{ steps.meta_idp.outputs.tags }}
+ labels: ${{ steps.meta_idp.outputs.labels }}
+
+ - name: Build and push the mujina sp image
+ uses: docker/build-push-action@v5
+ with:
+ context: mujina-sp
+ file: mujina-sp/docker/Dockerfile
+ platforms: linux/amd64
+ push: true
+ tags: ${{ steps.meta_sp.outputs.tags }}
+ labels: ${{ steps.meta_sp.outputs.labels }}
diff --git a/mujina-common/pom.xml b/mujina-common/pom.xml
index 7fa07aac..eaa4b609 100644
--- a/mujina-common/pom.xml
+++ b/mujina-common/pom.xml
@@ -21,7 +21,7 @@
org.openconext
mujina
- 8.0.9
+ 8.0.10-SNAPSHOT
../pom.xml
diff --git a/mujina-idp/docker/Dockerfile b/mujina-idp/docker/Dockerfile
new file mode 100644
index 00000000..6db5b001
--- /dev/null
+++ b/mujina-idp/docker/Dockerfile
@@ -0,0 +1,3 @@
+FROM eclipse-temurin:11-jdk-alpine
+COPY target/*.jar app.jar
+ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/mujina-idp/pom.xml b/mujina-idp/pom.xml
index 61f5363d..4d03b77c 100644
--- a/mujina-idp/pom.xml
+++ b/mujina-idp/pom.xml
@@ -21,7 +21,7 @@
org.openconext
mujina
- 8.0.9
+ 8.0.10-SNAPSHOT
../pom.xml
diff --git a/mujina-sp/docker/Dockerfile b/mujina-sp/docker/Dockerfile
new file mode 100644
index 00000000..6db5b001
--- /dev/null
+++ b/mujina-sp/docker/Dockerfile
@@ -0,0 +1,3 @@
+FROM eclipse-temurin:11-jdk-alpine
+COPY target/*.jar app.jar
+ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/mujina-sp/pom.xml b/mujina-sp/pom.xml
index a86f3ea9..8cd4cb3e 100644
--- a/mujina-sp/pom.xml
+++ b/mujina-sp/pom.xml
@@ -21,7 +21,7 @@
org.openconext
mujina
- 8.0.9
+ 8.0.10-SNAPSHOT
../pom.xml
diff --git a/pom.xml b/pom.xml
index 177bdfd2..613f0f56 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
org.openconext
mujina
- 8.0.9
+ 8.0.10-SNAPSHOT
pom