diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..c8f4283 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,17 @@ +name: Java CI + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 21 + uses: actions/setup-java@v3 + with: + java-version: '21' + distribution: 'temurin' + - name: Build with Maven + run: mvn --batch-mode --update-snapshots package \ No newline at end of file diff --git a/.github/workflows/pub-docker-hub.yaml b/.github/workflows/pub-docker-hub.yaml new file mode 100644 index 0000000..09e357f --- /dev/null +++ b/.github/workflows/pub-docker-hub.yaml @@ -0,0 +1,32 @@ +name: Publish Docker image to Docker Hub +on: + release: + types: + - published + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{secrets.DOCKER_USERNAME}} + password: ${{secrets.DOCKER_PASSWORD}} + - uses: actions/checkout@v3 + - name: Set up Maven Central Repository + uses: actions/setup-java@v3 + with: + java-version: '21' + distribution: 'adopt' + server-id: docker.io + server-username: DOCKER_USERNAME + server-password: DOCKER_PASSWORD + - if: github.event.release + name: Update version in pom.xml (Release only) + run: mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false + - name: Publish package + run: mvn --batch-mode -Prelease package dockerfile:push +env: + DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} + DOCKER_TOKEN: ${{secrets.DOCKER_PASSWORD}} \ No newline at end of file diff --git a/.github/workflows/pub.yaml b/.github/workflows/pub.yaml new file mode 100644 index 0000000..8891eaa --- /dev/null +++ b/.github/workflows/pub.yaml @@ -0,0 +1,29 @@ +name: Publish package to the Maven Central Repository +on: + release: + types: [released] + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Maven Central Repository + uses: actions/setup-java@v3 + with: + java-version: '21' + distribution: 'adopt' + server-id: ossrh + server-username: OSSRH_USERNAME + server-password: OSSRH_TOKEN + gpg-private-key: ${{secrets.GPG_PRIVATE_KEY}} + gpg-passphrase: GPG_PASSPHRASE + - if: github.event.release + name: Update version in pom.xml (Release only) + run: mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false + - name: Publish package + run: mvn --batch-mode -Prelease deploy +env: + GPG_PASSPHRASE: ${{secrets.GPG_PASSPHRASE}} + OSSRH_USERNAME: ${{secrets.OSSRH_USERNAME}} + OSSRH_TOKEN: ${{secrets.OSSRH_TOKEN}} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d74aba2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM openjdk:21 +MAINTAINER protege.stanford.edu + +ARG JAR_FILE +COPY target/${JAR_FILE} webprotege-gh-issues-service.jar +ENTRYPOINT ["java","-jar","/webprotege-gh-issues-service.jar"] \ No newline at end of file diff --git a/pom.xml b/pom.xml index 5f119fc..1d18492 100644 --- a/pom.xml +++ b/pom.xml @@ -139,6 +139,27 @@ + + com.spotify + dockerfile-maven-plugin + 1.4.13 + + + default + + build + + + + + protegeproject/${project.artifactId} + ${project.version} + + ${project.build.finalName}.jar + + + +