diff --git a/.github/labels.yml b/.github/labels.yml
new file mode 100644
index 0000000..82bb9b9
--- /dev/null
+++ b/.github/labels.yml
@@ -0,0 +1,66 @@
+---
+# Labels names are important as they are used by Release Drafter to decide
+# regarding where to record them in changelog or if to skip them.
+#
+# The repository labels will be automatically configured using this file and
+# the GitHub Action https://github.com/marketplace/actions/github-labeler.
+- name: breaking
+ description: Breaking Changes
+ color: bfd4f2
+- name: bug
+ description: Something isn't working
+ color: d73a4a
+- name: build
+ description: Build System and Dependencies
+ color: bfdadc
+- name: ci
+ description: Continuous Integration
+ color: 4a97d6
+- name: dependencies
+ description: Pull requests that update a dependency file
+ color: 0366d6
+- name: documentation
+ description: Improvements or additions to documentation
+ color: 0075ca
+- name: duplicate
+ description: This issue or pull request already exists
+ color: cfd3d7
+- name: enhancement
+ description: New feature or request
+ color: a2eeef
+- name: github_actions
+ description: Pull requests that update Github_actions code
+ color: "000000"
+- name: good first issue
+ description: Good for newcomers
+ color: 7057ff
+- name: help wanted
+ description: Extra attention is needed
+ color: 008672
+- name: invalid
+ description: This doesn't seem right
+ color: e4e669
+- name: performance
+ description: Performance
+ color: "016175"
+- name: python
+ description: Pull requests that update Python code
+ color: 2b67c6
+- name: question
+ description: Further information is requested
+ color: d876e3
+- name: refactoring
+ description: Refactoring
+ color: ef67c4
+- name: removal
+ description: Removals and Deprecations
+ color: 9ae7ea
+- name: style
+ description: Style
+ color: c120e5
+- name: testing
+ description: Testing
+ color: b1fc6f
+- name: wontfix
+ description: This will not be worked on
+ color: ffffff
\ No newline at end of file
diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml
new file mode 100644
index 0000000..f86c79d
--- /dev/null
+++ b/.github/release-drafter.yml
@@ -0,0 +1,59 @@
+categories:
+ - title: ":boom: Breaking Changes"
+ label: "breaking"
+ - title: ":rocket: Features"
+ label: "enhancement"
+ - title: ":fire: Removals and Deprecations"
+ label: "removal"
+ - title: ":beetle: Fixes"
+ label: "bug"
+ - title: ":racehorse: Performance"
+ label: "performance"
+ - title: ":rotating_light: Testing"
+ label: "testing"
+ - title: ":construction_worker: Continuous Integration"
+ label: "ci"
+ - title: ":books: Documentation"
+ label: "documentation"
+ - title: ":hammer: Refactoring"
+ label: "refactoring"
+ - title: ":lipstick: Style"
+ label: "style"
+ - title: ":package: Dependencies"
+ labels:
+ - "dependencies"
+ - "build"
+
+autolabeler:
+ - label: 'documentation'
+ branch:
+ - '/docs{0,1}\/.+/'
+ - label: 'bug'
+ branch:
+ - '/fix\/.+/'
+ title:
+ - '/fix/i'
+ - label: 'enhancement'
+ branch:
+ - '/feat\/.+/'
+ body:
+ - '/JIRA-[0-9]{1,4}/'
+ - label: 'refactoring'
+ branch:
+ - '/refactor\/.+/'
+ title:
+ - '/^refactor/i'
+ - label: 'testing'
+ branch:
+ - '/test\/.+/'
+ - label: 'breaking'
+ title:
+ - '/breaking change/i'
+ - label: 'ci'
+ files:
+ - '.github/*'
+
+template: |
+ ## Changes
+
+ $CHANGES
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..411675f
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,44 @@
+name: Build
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ id-token: write
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Set up JDK 21
+ uses: actions/setup-java@v3
+ with:
+ java-version: 21
+ distribution: zulu
+
+ - name: Authenticate to Google Cloud
+ id: auth
+ uses: google-github-actions/auth@v1.1.1
+ with:
+ workload_identity_provider: "projects/848539402404/locations/global/workloadIdentityPools/gh-actions/providers/gh-actions"
+ service_account: "gh-actions-dapla-pseudo@artifact-registry-5n.iam.gserviceaccount.com"
+ token_format: access_token
+
+ - name: Cache Maven packages
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2
+
+ - name: Build with Maven and deploy to Artifact Registry
+ run: mvn --batch-mode -P ssb-bip deploy
+
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
new file mode 100644
index 0000000..19d5246
--- /dev/null
+++ b/.github/workflows/labeler.yml
@@ -0,0 +1,19 @@
+name: Labeler
+
+on:
+ push:
+ branches:
+ - master
+
+jobs:
+ labeler:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check out the repository
+ uses: actions/checkout@v3
+
+ # Reads labels from .github/labels.yml
+ - name: Run Labeler
+ uses: crazy-max/ghaction-github-labeler@v4
+ with:
+ skip-delete: true
diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml
new file mode 100644
index 0000000..5dea360
--- /dev/null
+++ b/.github/workflows/release-drafter.yml
@@ -0,0 +1,30 @@
+name: Release Drafter
+
+on:
+ push:
+ branches:
+ - master
+ # pull_request event is required only for autolabeler
+ pull_request:
+ types:
+ - opened
+ - reopened
+ - synchronize
+
+permissions:
+ contents: read
+
+jobs:
+ update_release_draft:
+ permissions:
+ # write permission is required to create a GitHub release
+ contents: write
+ # write permission is required for autolabeler
+ # otherwise, read permission is required at least
+ pull-requests: write
+ runs-on: ubuntu-latest
+ steps:
+ # Draft the next Release notes as Pull Requests are merged into main
+ - uses: release-drafter/release-drafter@v5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..6f352fb
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,100 @@
+name: Release
+
+on:
+ push:
+ branches:
+ - release
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ id-token: write
+ packages: write
+
+ steps:
+ - uses: actions/create-github-app-token@v1
+ id: app-token
+ with:
+ app-id: ${{ secrets.DAPLA_BOT_APP_ID }}
+ private-key: ${{ secrets.DAPLA_BOT_PRIVATE_KEY }}
+
+ - uses: actions/checkout@v3
+ with:
+ token: ${{ steps.app-token.outputs.token }}
+ ref: refs/heads/master
+
+ - name: Set up JDK 21
+ uses: actions/setup-java@v3
+ with:
+ java-version: 21
+ distribution: zulu
+ server-id: github
+
+ - name: Authenticate to Google Cloud
+ id: auth
+ uses: google-github-actions/auth@v1.1.1
+ with:
+ workload_identity_provider: "projects/848539402404/locations/global/workloadIdentityPools/gh-actions/providers/gh-actions"
+ service_account: "gh-actions-dapla-pseudo@artifact-registry-5n.iam.gserviceaccount.com"
+ token_format: access_token
+
+ - name: Cache Maven packages
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2
+
+ - name: Configure Git user
+ run: |
+ git config user.name "dapla-bot[bot]"
+ git config user.email "143391972+dapla-bot[bot]@users.noreply.github.com"
+
+ - name: Setup Maven authentication to GitHub packages
+ uses: s4u/maven-settings-action@v2.8.0
+ id: maven_settings
+ with:
+ servers: '[{"id": "github","configuration": {"httpHeaders": {"property": {"name": "Authorization","value": "Bearer ${{ secrets.GITHUB_TOKEN }}"}}}}]'
+
+ - name: Maven release and deploy to GitHub packages
+ id: release_jar
+ env:
+ GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
+ run: |
+ # Get the release version from the pom.xml before the next snapshot increment
+ VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout | sed "s/-SNAPSHOT//")
+ echo "version=${VERSION}" >> $GITHUB_OUTPUT
+ # Perform the release/deploy and increment the version to the next snapshot
+ mvn --batch-mode release:prepare -Darguments="-Dmaven.deploy.skip=true -DskipTests"
+ mvn --batch-mode release:perform
+ TAG=$(git describe --abbrev=0 --tags)
+ echo "tag=${TAG}" >> $GITHUB_OUTPUT
+
+ - name: Create GitHub release draft
+ uses: release-drafter/release-drafter@v5
+ id: create_github_release
+ env:
+ GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
+ with:
+ tag: ${{ steps.release_jar.outputs.tag }}
+
+ - name: Upload assets to GitHub release draft
+ env:
+ GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
+ run: |
+ ARTIFACT_ID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout)
+ # Get all files matching the artifact id and version (source, javadoc, etc.)
+ ARTIFACT_GLOB=(./target/$ARTIFACT_ID-${{ steps.release_jar.outputs.version }}*.jar)
+ for file in "${ARTIFACT_GLOB[@]}"; do
+ echo "Uploading $file"
+ gh release upload ${{ steps.create_github_release.outputs.tag_name }} $file
+ done
+
+ - name: Publish GitHub release
+ uses: eregon/publish-release@v1
+ env:
+ GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
+ with:
+ release_id: ${{ steps.create_github_release.outputs.id }}
\ No newline at end of file
diff --git a/Makefile b/Makefile
index ae03501..91544e0 100644
--- a/Makefile
+++ b/Makefile
@@ -18,8 +18,8 @@ release-dryrun: ## Simulate a release in order to detect any issues
mvn release:prepare release:perform -Darguments="-Dmaven.deploy.skip=true" -DdryRun=true
.PHONY: release
-release: ## Release a new version. Update POMs and tag the new version in git.
- mvn release:prepare release:perform -Darguments="-Dmaven.deploy.skip=true -Dmaven.javadoc.skip=true"
+release: ## Release a new version. Update POMs and tag the new version in git. Pipeline will deploy upon tag detection.
+ git push origin main:release
.PHONY: help
help:
diff --git a/pom.xml b/pom.xml
index 78c7d77..d128039 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,11 +9,12 @@
dapla-dlp-pseudo-func
- 11
+ 21
${java.version}
${java.version}
UTF-8
- artifactregistry://europe-north1-maven.pkg.dev/artifact-registry-14da
+ artifactregistry://europe-north1-maven.pkg.dev/artifact-registry-5n/dapla-pseudo-maven/
+ statisticsnorway/dapla-dlp-pseudo-func
3.24.2
@@ -23,28 +24,27 @@
1.5.1
5.9.2
1.4.5
- 1.18.26
+ 1.18.30
2.0.6
1.8.0
- 0.0.3
+ 0.0.13
2.1.4
10.8.1
- 3.1.2
- 3.8.1
- 3.3.0
- 3.2.4
- 2.22.2
- 3.2.1
+ 3.3.1
+ 3.11.0
+ 3.6.2
+ 3.5.1
+ 3.2.2
+ 3.3.0
0.8.8
3.9.1.2184
- scm:git:git://github.com/statisticsnorway/dapla-dlp-pseudo-func.git
- scm:git:git@github.com:statisticsnorway/dapla-dlp-pseudo-func.git
- https://github.com/statisticsnorway/dapla-dlp-pseudo-func
+ scm:git:https://github.com/${github.repository}.git
+ https://github.com/${github.repository}
HEAD
@@ -164,48 +164,6 @@
-
- org.apache.maven.plugins
- maven-shade-plugin
- ${maven-shade-plugin.version}
-
-
- package
-
- shade
-
-
-
-
-
-
-
- com.idealista
- no.ssb.dapla.dlp.shaded.com.idealista
-
-
- com.google.common
- no.ssb.dapla.dlp.shaded.com.google.common
-
-
- com.fasterxml.jackson
- no.ssb.dapla.dlp.shaded.jackson
-
-
- shaded
- true
-
-
- com.idealista:*
- com.google.guava:*
- com.fasterxml.jackson.core:*
-
-
- false
-
-
-
-
@@ -220,9 +178,7 @@
artifact-registry
-
- artifactregistry://europe-north1-maven.pkg.dev/artifact-registry-14da/maven-releases
-
+ ${artifact-registry.url}
true
@@ -232,9 +188,7 @@
artifact-registry-snapshot
-
- artifactregistry://europe-north1-maven.pkg.dev/artifact-registry-14da/maven-snapshots
-
+ ${artifact-registry.url}
false
@@ -300,14 +254,21 @@
artifact-registry
- ${artifact-registry.url}/maven-releases
+ ${artifact-registry.url}
artifact-registry-snapshots
- ${artifact-registry.url}/maven-snapshots
+ ${artifact-registry.url}
+
+
+ github
+ GitHub Packages
+ https://maven.pkg.github.com/${github.repository}
+
+