From 18430cce51e111109f1d34aea0b4b8d3194903b1 Mon Sep 17 00:00:00 2001 From: Peter Siegmund Date: Mon, 30 Sep 2024 23:07:37 +0200 Subject: [PATCH] add CI/CD Signed-off-by: Peter Siegmund --- .github/dependabot.yml | 11 ++++++++ .github/workflows/deploy-hetzner.yaml | 39 +++++++++++++++++++++++++++ src/main/resources/application.yaml | 4 ++- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/deploy-hetzner.yaml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..cbc0c13 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/deploy-hetzner.yaml b/.github/workflows/deploy-hetzner.yaml new file mode 100644 index 0000000..a983525 --- /dev/null +++ b/.github/workflows/deploy-hetzner.yaml @@ -0,0 +1,39 @@ +--- +name: 'deploy to hetzner' + +on: + push: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Cloning repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + cache: gradle + + - name: Build with Gradle (no Testing) + run: ./gradlew clean build -x test + + - name: Push to dokku + timeout-minutes: 20 + uses: dokku/github-action@v1 + with: + branch: main + git_remote_url: ${{ secrets.HETZNER_GIT_URI }} + ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} + git_push_flags: --force diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index bde5e97..91d3abf 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -25,5 +25,7 @@ eureka: client: registerWithEureka: true fetchRegistry: false - environment: production datacenter: hel1-dc2 + environment: production + instance: + instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}