diff --git a/.gitea/workflows/tag_release.yml b/.gitea/workflows/tag_release.yml new file mode 100644 index 0000000..7a4092c --- /dev/null +++ b/.gitea/workflows/tag_release.yml @@ -0,0 +1,62 @@ +name: Build and Deploy Versioned Spring Boot Server + +on: + push: + tags: # Match all tags + - "*" + +jobs: + build: + runs-on: ubuntu-latest + + steps: + # 1. Checkout the code + - name: Checkout code + uses: actions/checkout@v2 + + # 2. Set up Java and Maven + - name: Set up JDK (Eclipse Temurin) + uses: actions/setup-java@v3 + with: + distribution: "temurin" + java-version: "17" + cache: maven + + # 3. Verify Maven installation + - name: Install Maven + run: | + sudo apt-get update + sudo apt-get install -y maven + mvn -version + + # 4. Build the Spring Boot application + - name: Build Spring Boot Application + run: | + mvn clean package -DskipTests + + # 5. Set up Docker + - name: Set up Docker + run: | + docker --version + + # 6. Extract the tag name + - name: Extract Tag Version + id: extract_version + run: | + TAG_VERSION=${GITEA_REF#refs/tags/} + echo "TAG_VERSION=$TAG_VERSION" >> $GITHUB_ENV + + # 7. Build the Docker image with the tag + - name: Build and Package Docker Image + run: | + docker build -t tea.zendric.de/cedric/xpensely-server:${{ env.TAG_VERSION }} . + + # 8. Docker login + - name: Login to Docker Registry + run: | + echo "${{ secrets.TEAPASSWORD }}" | docker login tea.zendric.de -u ${{ secrets.TEAUSER }} --password-stdin + + # 9. Push the Docker image with the tag + - name: Push the Docker Image to registry + run: | + docker push tea.zendric.de/cedric/xpensely-server:${{ env.TAG_VERSION }}