71 lines
2.2 KiB
YAML

name: Spring App CI
'on':
push:
branches:
- main
jobs:
build-jar:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: adopt
- name: Grant execute permission for mvnw
run: chmod +x ./mvnw
- name: Build .jar with Maven
run: './mvnw package spring-boot:repackage'
build-image:
runs-on: ubuntu-22.04
steps:
- name: Initialize Docker runtime
run: >
apt-get update
apt-get install ca-certificates curl gnupg lsb-release -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg
--dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
docker-buildx-plugin -y
- name: Build Docker image
run: >-
docker build -t walzen665/spring-cicd-test:latest
--build-arg="JAR_FILE=target/demo-0.0.1-SNAPSHOT-spring-boot.jar" .
- name: Tag Docker image
run: >-
docker tag walzen665/spring-cicd-test:latest
git.walzen665.de/walzen665/spring-cicd-test:latest
- name: Log in to Gitea Docker Registry
run: >-
echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{
secrets.GITEAREGISTRYUSERNAME }} --password-stdin
https://git.walzen665.de
push-image:
runs-on: ubuntu-22.04
steps:
- name: Push Docker Image to Gitea
run: 'docker push git.walzen665.de/walzen665/spring-cicd-test:latest'
collect-artifacts:
runs-on: ubuntu-22.04
steps:
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: artifacts
path: target/*.jar