summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/ci.yml (renamed from .github/workflows/test.yml)41
-rw-r--r--.github/workflows/deploy.yml35
-rw-r--r--.github/workflows/release.yml27
3 files changed, 50 insertions, 53 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/ci.yml
index 37ad568..170f5dc 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/ci.yml
@@ -1,11 +1,15 @@
-name: 'Run Tests'
+name: CI
on:
push:
branches: [ 'master' ]
- tags: [ '*' ]
pull_request:
- branches: [ '*' ]
+ branches: [ 'master' ]
+ release:
+ types: [ 'created' ]
+
+permissions:
+ contents: read
jobs:
tests:
@@ -16,13 +20,10 @@ jobs:
with:
java-version: '21'
distribution: 'temurin'
-
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
-
- name: Execute tests
run: ./gradlew test
-
integrationTests:
runs-on: ubuntu-latest
steps:
@@ -31,42 +32,46 @@ jobs:
with:
java-version: '21'
distribution: 'temurin'
-
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
-
- name: Execute integration tests
run: ./gradlew integrationTest
-
- # Deploy preview build for testing based on latest successful tested master
- deployPreview:
+ build:
runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ packages: write
needs:
- tests
- integrationTests
- if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
-
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
-
+ # Setup and build docker image
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
+ - name: Build image
+ run: ./gradlew bootBuildImage
+ # Deploy docker image
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Execute image build and push
+ - name: Deploy release image
+ if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
+ run: |
+ docker tag ghcr.io/${{ github.repository }} ghcr.io/${{ github.repository }}:${{ github.ref_name }}
+ docker push ghcr.io/${{ github.repository }}
+ docker push ghcr.io/${{ github.repository }}:${{ github.ref_name }}
+ - name: Deploy preview image
+ if: ${{ github.ref == 'refs/heads/master' }}
run: |
- ./gradlew bootBuildImage
docker tag ghcr.io/${{ github.repository }} ghcr.io/${{ github.repository }}:preview
docker push ghcr.io/${{ github.repository }}:preview \ No newline at end of file
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
deleted file mode 100644
index 65b5e78..0000000
--- a/.github/workflows/deploy.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: 'Run build and deploy'
-
-on:
- release:
- types: [ 'published' ]
-
-jobs:
- docker:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-java@v4
- with:
- java-version: '21'
- distribution: 'temurin'
-
- - name: Setup Gradle
- uses: gradle/actions/setup-gradle@v3
-
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
-
- - name: Login to Docker Hub
- uses: docker/login-action@v3
- with:
- registry: ghcr.io
- username: ${{ github.actor }}
- password: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Execute image build and push
- run: |
- ./gradlew bootBuildImage
- docker tag ghcr.io/${{ github.repository }} ghcr.io/${{ github.repository }}:${{ github.ref_name }}
- docker push ghcr.io/${{ github.repository }}
- docker push ghcr.io/${{ github.repository }}:${{ github.ref_name }} \ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..c89694b
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,27 @@
+name: release-please
+
+on:
+ push:
+ branches: [ 'master' ]
+
+permissions:
+ contents: read
+
+jobs:
+ release-please:
+ name: run release-please
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ pull-requests: write
+ steps:
+ - uses: actions/create-github-app-token@v2
+ id: app-token
+ with:
+ app-id: ${{ secrets.RELEASE_APP_ID }}
+ private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
+ owner: ${{ github.repository_owner }}
+
+ - uses: googleapis/release-please-action@v4
+ with:
+ token: ${{ steps.app-token.outputs.token }}