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 - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: jar-artifact path: target/*.jar build-image: runs-on: ubuntu-22.04 steps: - name: Initialize Docker runtime run: | sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin -y - name: Checkout uses: actions/checkout@v4 - name: Download .jar Artifact uses: actions/download-artifact@v3 with: name: jar-artifact - name: (Optional) List files and path in the repository run: | ls -la pwd - name: Build Docker image run: docker build -t walzen665/spring-cicd-test:latest --build-arg="JAR_FILE=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 - name: Push Docker Image to Gitea run: docker push git.walzen665.de/walzen665/spring-cicd-test:latest