Skip to content

Commit

Permalink
ci: backend build and release
Browse files Browse the repository at this point in the history
  • Loading branch information
mghilardelli committed Sep 23, 2024
1 parent 5e02c16 commit ac24e3c
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 1 deletion.
61 changes: 61 additions & 0 deletions .github/workflows/ci-backend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Backend Java CI with Maven

defaults:
run:
working-directory: backend

on:
push:
paths:
- 'backend/**'
branches: [ "main" ]
pull_request:
paths:
- 'backend/**'
branches: [ "main" ]

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'
cache: maven
- name: Run the Maven verify phase
run: mvn --batch-mode --update-snapshots verify
- name: Login to GitHub Container Registry
if: github.ref == 'refs/heads/main'
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin
- name: Create container image
if: github.ref == 'refs/heads/main'
env:
IMAGE_ID: ghcr.io/${{ github.repository }}/backend
VERSION: main
run: |
# Convert to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
mvn spring-boot:build-image \
-Dmaven.test.skip=true \
-Dspring-boot.build-image.imageName=$IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
# Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
with:
directory: backend
6 changes: 6 additions & 0 deletions .github/workflows/main-image-cleanup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ jobs:
main-image:
runs-on: ubuntu-latest
steps:
- uses: actions/delete-package-versions@v5
with:
package-name: 'das/backend'
package-type: 'container'
min-versions-to-keep: 3
delete-only-untagged-versions: 'true'
- uses: actions/delete-package-versions@v5
with:
package-name: 'das/sfera-mock'
Expand Down
37 changes: 36 additions & 1 deletion .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ jobs:
sfera-mock--release_created: ${{ steps.release.outputs.sfera-mock--release_created }}
sfera-mock--version: ${{ steps.release.outputs.sfera-mock--version }}
sfera-mock--tag_name: ${{ steps.release.outputs.sfera-mock--tag_name }}
backend--release_created: ${{ steps.release.outputs.backend--release_created }}
backend--version: ${{ steps.release.outputs.backend--version }}
backend--tag_name: ${{ steps.release.outputs.backend--tag_name }}
webapp--release_created: ${{ steps.release.outputs.webapp--release_created }}
webapp--version: ${{ steps.release.outputs.webapp--version }}
webapp--tag_name: ${{ steps.release.outputs.webapp--tag_name }}
Expand Down Expand Up @@ -181,7 +184,7 @@ jobs:
track: internal
status: draft

backend-release:
sfera-mock-release:
needs: release-please
if: needs.release-please.outputs.sfera-mock--release_created
runs-on: ubuntu-latest
Expand Down Expand Up @@ -210,6 +213,38 @@ jobs:
-Dmaven.test.skip=true \
-Dspring-boot.build-image.imageName=$IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
docker tag $IMAGE_ID:$VERSION $IMAGE_ID:latest
docker push $IMAGE_ID:latest
backend-release:
needs: release-please
if: needs.release-please.outputs.backend--release_created
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v3
with:
java-version: '21'
distribution: 'temurin'
cache: 'maven'

- name: Login to GitHub Container Registry
run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io --username ${{ github.actor }} --password-stdin
- name: Create container image
env:
IMAGE_ID: ghcr.io/${{ github.repository }}/backend
VERSION: ${{ needs.release-please.outputs.backend--version }}
run: |
# Convert to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
mvn spring-boot:build-image \
-Dmaven.test.skip=true \
-Dspring-boot.build-image.imageName=$IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
docker tag $IMAGE_ID:$VERSION $IMAGE_ID:latest
docker push $IMAGE_ID:latest
Expand Down

0 comments on commit ac24e3c

Please sign in to comment.