Skip to content

chore: bump the main group across 1 directory with 3 updates #100

chore: bump the main group across 1 directory with 3 updates

chore: bump the main group across 1 directory with 3 updates #100

Workflow file for this run

name: build
on:
push:
branches: [ main ]
paths:
- '**'
- '!docs/**'
- '!README.md'
pull_request:
branches: [ main ]
permissions:
packages: write
jobs:
version:
name: Calculate Version
runs-on: ubuntu-24.04
outputs:
value: ${{ steps.calculate.outputs.version }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-tags: true
fetch-depth: 0
- name: Calculate
id: calculate
run: curl -Ls https://solugo.github.io/gitversion/run.sh | GITVERSION=v1.1.1 bash
frontend:
name: Build Frontend ${{ needs.version.outputs.value }}
runs-on: ubuntu-24.04
needs:
- version
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: actions/setup-node@v4
with:
node-version: 22
- name: Build
working-directory: frontend
run: |-
yarn install
yarn build
- name: Store
if: github.ref_name == 'main'
uses: actions/upload-artifact@v4
with:
name: 'frontend'
path: 'frontend/dist/*'
retention-days: 1
backend:
name: Build Backend ${{ needs.version.outputs.value }}
runs-on: ubuntu-24.04
needs:
- version
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '21'
cache: 'gradle'
- name: Build
working-directory: backend
run: |-
./gradlew clean check bootJar -Pversion=${{ needs.version.outputs.value }}
- name: Store
if: github.ref_name == 'main'
uses: actions/upload-artifact@v4
with:
name: 'backend'
path: 'backend/build/libs/backend.jar'
retention-days: 1
helm:
name: Build Helm Chart ${{ needs.version.outputs.value }}
runs-on: ubuntu-24.04
needs:
- version
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Package
run: |-
helm package chart \
-d build \
--version '${{ needs.version.outputs.value }}' \
--app-version '${{ needs.version.outputs.value }}' \
;
- name: Store
if: github.ref_name == 'main'
uses: actions/upload-artifact@v4
with:
name: 'helm'
path: 'build/*.tgz'
retention-days: 1
publish:
name: Publish ${{ needs.version.outputs.value }}
runs-on: ubuntu-24.04
if: github.ref_name == 'main'
needs:
- version
- backend
- frontend
- helm
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: ./artifacts
pattern: '*'
- name: Publish Docker Image
uses: docker/build-push-action@v6
with:
context: .
build-args: |-
frontend=./artifacts/frontend
backend=./artifacts/backend/backend.jar
push: ${{ github.ref_name == 'main' }}
tags: ghcr.io/${{ github.repository }}/scrumpoker-docker:latest, ghcr.io/${{ github.repository }}/scrumpoker-docker:${{ needs.version.outputs.value }}
- name: Publish Helm Chart
run: |-
mv artifacts/helm/*.tgz artifacts/helm/helm.tgz
helm push \
artifacts/helm/helm.tgz \
oci://ghcr.io/${{ github.repository }} \
;
deploy:
name: Deploy ${{ needs.version.outputs.value }} to Titan
runs-on: ubuntu-24.04
if: github.ref_name == 'main'
needs:
- version
- publish
steps:
- name: Login
run: |-
mkdir ~/.kube
echo '${{ secrets.KUBE_CONFIG_TITAN_01 }}' > ~/.kube/config
- name: Deploy
run: |-
helm upgrade -i scrumpoker oci://ghcr.io/${{ github.repository }}/scrumpoker-helm \
--version ${{ needs.version.outputs.value }} \
--set ingress.enabled=true \
--set ingress.domain=poker.solugo.de \
--set ingress.annotations."kubernetes\.io/ingress\.class"=public \
--set ingress.annotations."cert-manager\.io/cluster-issuer"=letsencrypt \
--set serviceMonitor.enabled=true \
--set serviceMonitor.namespace=observability \
--wait \
;