Skip to content
Merged
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
54 changes: 27 additions & 27 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,15 @@ on:
branches: [ main, dev ]

env:
DOCKER_IMAGE: radarbase/radar-output-restructure
REGISTRY: ghcr.io
REPOSITORY: ${{ github.repository }}
IMAGE_NAME: radar-output-restructure

jobs:
# Build and test the code
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3

- uses: actions/setup-java@v3
Expand All @@ -28,7 +26,7 @@ jobs:
java-version: 17

- name: Setup Gradle
uses: gradle/gradle-build-action@v2
uses: gradle/actions/setup-gradle@v3

# Compile the code
- name: Compile code
Expand All @@ -47,13 +45,17 @@ jobs:

# Check that the docker image builds correctly
docker:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- uses: actions/checkout@v4

# Setup docker build environment
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Cache Docker layers
uses: actions/cache@v3
Expand All @@ -63,27 +65,25 @@ jobs:
restore-keys: |
${{ runner.os }}-buildx-

- name: Login to Container Registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Lowercase image name
run: |
echo "DOCKER_IMAGE=${REGISTRY}/${REPOSITORY,,}/${IMAGE_NAME}" >>${GITHUB_ENV}

# Add Docker labels and tags
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: ${{ env.DOCKER_IMAGE }}

- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

# Setup docker build environment
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build
- name: Build docker image and push
uses: docker/build-push-action@v3
with:
context: .
Expand All @@ -95,8 +95,8 @@ jobs:
# Use runtime labels from docker_meta as well as fixed labels
labels: |
${{ steps.docker_meta.outputs.labels }}
maintainer=Bastiaan de Graaf <bastiaan@thehyve.nl>
org.opencontainers.image.authors=Bastiaan de Graaf <bastiaan@thehyve.nl>
maintainer=Pim van Nierop <pim@thehyve.nl>
org.opencontainers.image.authors=Pim van Nierop <pim@thehyve.nl>
org.opencontainers.image.vendor=RADAR-base
org.opencontainers.image.licenses=Apache-2.0

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,18 @@ on:
jobs:
# Build and test the code
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17

- name: Setup Gradle
uses: gradle/gradle-build-action@v2
uses: gradle/actions/setup-gradle@v3

- name: Has SNAPSHOT version
id: is-snapshot
Expand All @@ -37,6 +34,6 @@ jobs:

- name: Publish
env:
OSSRH_USER: ${{ secrets.OSSRH_USER }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
OSSRH_USER: ${{ secrets.OSSRH_USER_TOKEN_ID }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_USER_TOKEN_SECRET }}
run: ./gradlew -Psigning.gnupg.keyName=${{ secrets.OSSRH_GPG_SECRET_KEY_NAME }} -Psigning.gnupg.executable=gpg -Psigning.gnupg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} publish
79 changes: 38 additions & 41 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,37 @@
# Create release files
name: Release

on:
release:
types: [published]

env:
DOCKER_IMAGE: radarbase/radar-output-restructure
REGISTRY: ghcr.io
REPOSITORY: ${{ github.repository }}
DOCKER_IMAGE: radar-output-restructure

jobs:
upload:
# The type of runner that the job will run on
runs-on: ubuntu-latest
permissions: write-all

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17

- name: Setup Gradle
uses: gradle/gradle-build-action@v2
uses: gradle/actions/setup-gradle@v3

# Compile code
- name: Compile code
run: ./gradlew assemble

# Upload it to GitHub
- name: Upload to GitHub
uses: AButler/upload-release-assets@v2.0
uses: AButler/upload-release-assets@v3.0
with:
files: 'build/libs/*;build/distributions/*'
repo-token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -44,44 +43,51 @@ jobs:

- name: Publish
env:
OSSRH_USER: ${{ secrets.OSSRH_USER }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
OSSRH_USER: ${{ secrets.OSSRH_USER_TOKEN_ID }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_USER_TOKEN_SECRET }}
run: ./gradlew -Psigning.gnupg.keyName=${{ secrets.OSSRH_GPG_SECRET_KEY_NAME }} -Psigning.gnupg.executable=gpg -Psigning.gnupg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} publish closeAndReleaseSonatypeStagingRepository

# Build and push tagged release docker image
docker:
# The type of runner that the job will run on
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

# Setup docker build environment
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Container Registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Lowercase image name
run: |
echo "DOCKER_IMAGE=${REGISTRY}/${REPOSITORY,,}/${IMAGE_NAME}" >>${GITHUB_ENV}

# Add Docker labels and tags
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: ${{ env.DOCKER_IMAGE }}
# output 2.1.2, 2.1 and 2
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}

# Setup docker build environment
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

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

- name: Build and push
uses: docker/build-push-action@v3
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
Expand All @@ -91,21 +97,12 @@ jobs:
# Use runtime labels from docker_meta as well as fixed labels
labels: |
${{ steps.docker_meta.outputs.labels }}
maintainer=Bastiaan de Graaf <bastiaan@thehyve.nl>
org.opencontainers.image.authors=Bastiaan de Graaf <bastiaan@thehyve.nl>
maintainer=Pim van Nierop <pim@thehyve.nl>
org.opencontainers.image.authors=Pim van Nierop <pim@thehyve.nl>
org.opencontainers.image.vendor=RADAR-base
org.opencontainers.image.licenses=Apache-2.0

- name: Build locally
uses: docker/build-push-action@v3
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
load: true
tags: ${{ steps.docker_meta.outputs.tags }}

- name: Inspect image
- name: Inspect docker image
run: |
docker pull ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }}
docker image inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }}
docker run --rm ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} --help
7 changes: 5 additions & 2 deletions .github/workflows/scheduled-snyk-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,17 @@ on:
workflow_dispatch:

env:
DOCKER_IMAGE: radarbase/radar-output-restructure
DOCKER_IMAGE: ghcr.io/${{ github.repository }}/radar-output-restructure

jobs:
security:
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Run Snyk to check for vulnerabilities
continue-on-error: true # To make sure that SARIF upload gets called
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/scheduled-snyk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,15 @@ on:
jobs:
security:
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/gradle-jdk17@master
uses: snyk/actions/gradle-8-jdk17@master
continue-on-error: true # To make sure that SARIF upload gets called
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/snyk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/gradle-jdk17@master
uses: snyk/actions/gradle-8-jdk17@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

FROM --platform=$BUILDPLATFORM gradle:8.4-jdk17 AS builder
FROM --platform=$BUILDPLATFORM gradle:8.13-jdk17 AS builder

RUN mkdir /code
WORKDIR /code
Expand Down
13 changes: 13 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,19 @@ configurations["integrationTestRuntimeOnly"].extendsFrom(
configurations.testRuntimeOnly.get(),
)

configurations.all {
resolutionStrategy {
/* The entries in the block below are added here to force the version of
* transitive dependencies and mitigate reported vulnerabilities */
force(
"com.fasterxml.jackson.core:jackson-databind:${Versions.jackson}",
"io.netty:netty-codec-http:${Versions.netty}",
"io.projectreactor.netty:reactor-netty-http:${Versions.projectReactorNetty}",
"org.apache.commons:commons-lang3:3.18.0",
)
}
}

dependencies {
api("org.apache.avro:avro:${Versions.avro}")
runtimeOnly("org.xerial.snappy:snappy-java:${Versions.snappy}")
Expand Down
Loading
Loading