Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e0c1b2c
Initial workflow file for radar appserver jersey
this-Aditya Dec 23, 2025
490c053
Corrected tasks
this-Aditya Dec 23, 2025
6d0906d
Misc changes
this-Aditya Dec 23, 2025
88b2e21
Using encrypted google credentials file
this-Aditya Dec 23, 2025
4f90f7c
Using correct credentials file
this-Aditya Dec 23, 2025
cd74ae4
Adding the docker setup
this-Aditya Dec 24, 2025
30afe95
Using the image created in previous steps
this-Aditya Dec 24, 2025
0eb257a
fix: re-using the image in integration tests instead of building new one
this-Aditya Dec 25, 2025
e9d438c
Using tag correctly
this-Aditya Dec 25, 2025
da112e9
Minor changes in appserver jersey
this-Aditya Dec 30, 2025
69a0664
Correcting resources for tests
this-Aditya Dec 30, 2025
a132727
Merge branch 'docker-setup' into ci-setup
this-Aditya Dec 30, 2025
98b9af6
Added integration tests
this-Aditya Dec 30, 2025
d4b1352
Docker compose setup for microservices integration tests
this-Aditya Dec 30, 2025
0bc3724
Using the default network in docker compose
this-Aditya Jan 2, 2026
36c194d
CI for microservices
this-Aditya Jan 2, 2026
d7129db
Using the matrix variable directly
this-Aditya Jan 2, 2026
5303f2e
Doing checkout on docker job
this-Aditya Jan 2, 2026
b7d7b0d
Not running jersey ci on ci-setup push
this-Aditya Jan 2, 2026
219fc36
Misc changes
this-Aditya Jan 2, 2026
850a9b6
Flatteing the metadata dirs and skipping ktlint for now
this-Aditya Jan 2, 2026
f66fc5a
Misc changes
this-Aditya Jan 2, 2026
f393a3b
Assembling the project
this-Aditya Jan 4, 2026
b8da987
Merge branch docker-setup into ci-setup
this-Aditya Jan 5, 2026
f0b46a0
Not running workflows anymore on ci-setup push
this-Aditya Jan 5, 2026
174e903
Release workflow for appserver jersey
this-Aditya Jan 6, 2026
2fb67de
Added release workflow for appserver microservices
this-Aditya Jan 6, 2026
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
148 changes: 148 additions & 0 deletions .github/workflows/jersey-main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
name: CI jersey-main
on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main, dev ]

env:
REGISTRY: ghcr.io
REPOSITORY: ${{ github.repository }}
IMAGE_NAME: radar-appserver

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v5

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

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

- name: Compile code
run: ./gradlew :appserver-jersey:assemble

- name: Check
run: ./gradlew :appserver-jersey:check

# Check that the docker image builds correctly
docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v5

- name: Login to Container Registry
uses: docker/login-action@v3
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@v5
with:
images: ${{ env.DOCKER_IMAGE }}

# 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
id: cache-buildx
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ hashFiles('Dockerfile.appserver-jersey', 'appserver-jersey/build.gradle.kts', 'buildSrc/src/main/kotlin/Versions.kt', 'settings.gradle.kts', 'build.gradle.kts', 'appserver-jersey/src/main/**') }}
restore-keys: |
${{ runner.os }}-buildx-

- name: Cache parameters
id: cache-parameters
run: |
if [ "${{ steps.cache-buildx.outputs.cache-hit }}" = "true" ]; then
echo "cache-to=" >> $GITHUB_OUTPUT
else
echo "cache-to=type=local,dest=/tmp/.buildx-cache-new,mode=max" >> $GITHUB_OUTPUT
fi

- name: Build docker
uses: docker/build-push-action@v3
with:
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: ${{ steps.cache-parameters.outputs.cache-to }}
load: true
context: .
file: Dockerfile.appserver-jersey
tags: ${{ steps.docker_meta.outputs.tags }}
labels: |
${{ steps.docker_meta.outputs.labels }}
org.opencontainers.image.vendor=RADAR-base
org.opencontainers.image.licenses=Apache-2.0

- name: Inspect docker image
run: docker image inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }}

- name: Check docker image
run: docker run --rm ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} curl --help

# Push the image on the dev and master branches
- name: Push image
if: ${{ github.event_name != 'pull_request' }}
run: docker push ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }}

- name: Move docker build cache
if: steps.cache-buildx.outputs.cache-hit != 'true'
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache

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

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

- name: Install gpg secret key
run: |
cat <(echo -e "${{ secrets.GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG

- name: Decrypt google application credentials
run: |
gpg --pinentry-mode loopback --local-user "Adi Mishra" --batch --yes --passphrase "${{ secrets.GPG_SECRET_KEY_PASSPHRASE }}" --output appserver-jersey/src/integrationTest/resources/docker/fcm/google-credentials.json --decrypt appserver-jersey/src/integrationTest/resources/docker/fcm/google-credentials.enc.gpg

- name: Integration test
run: |
echo "RADAR_APPSERVER_IMAGE_NAME=${{ env.DOCKER_IMAGE }}" >> appserver-jersey/src/integrationTest/resources/docker/.env
echo "RADAR_APPSERVER_TAG=${{ steps.docker_meta.outputs.version }}" >> appserver-jersey/src/integrationTest/resources/docker/.env
./gradlew :appserver-jersey:composeUp -PdockerComposeBuild=false
sleep 15
./gradlew :appserver-jersey:integrationTest -PdockerComposeBuild=false

- uses: actions/upload-artifact@v4
if: always()
with:
name: integration-test-logs
path: appserver-jersey/build/container-logs/
retention-days: 7
88 changes: 88 additions & 0 deletions .github/workflows/jersey-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Appserver Jersey Release

on:
release:
types: [published]

env:
REGISTRY: ghcr.io
REPOSITORY: ${{ github.repository }}
IMAGE_NAME: radar-appserver

jobs:
upload:
runs-on: ubuntu-latest
permissions: write-all

steps:
- uses: actions/checkout@v5

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

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

- name: Compile code
run: ./gradlew assemble

- name: Upload to GitHub
uses: AButler/upload-release-assets@v3.0
with:
files: 'appserver-jersey/build/libs/*;appserver-jersey/build/distributions/*'
repo-token: ${{ secrets.GITHUB_TOKEN }}

docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v4

- 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@v3
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@v5
with:
images: ${{ env.DOCKER_IMAGE }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}

- name: Build docker
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
context: .
push: true
tags: ${{ steps.docker_meta.outputs.tags }}
labels: |
${{ steps.docker_meta.outputs.labels }}
org.opencontainers.image.vendor=RADAR-base
org.opencontainers.image.licenses=Apache-2.0

- 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 }}
Loading
Loading