From 1e0b50bd86ccaea3932bf6888335e360f1074bf9 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 12 Sep 2025 11:59:35 +0200 Subject: [PATCH 1/2] feature ci --- .gitea/workflows/ci.yml | 105 ++++++++++++++++++++++++++++++++++++++ .gitea/workflows/prod.yml | 105 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 210 insertions(+) create mode 100755 .gitea/workflows/ci.yml create mode 100644 .gitea/workflows/prod.yml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100755 index 0000000..eca6a75 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,105 @@ +name: CI/CD Pipeline for Spring Boot + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + # Step 1: Checkout code + - name: Checkout Code + uses: actions/checkout@v3 + + # Step 2: Set up JDK + - name: Set up JDK 23 + uses: actions/setup-java@v3 + with: + java-version: 23 + distribution: 'temurin' + + # Step 3: Cache Maven dependencies + - name: Cache Maven Dependencies + uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + + # Step 4: Build and test + - name: Build and Test + run: | + ./mvnw clean verify + + docker: + runs-on: ubuntu-latest + needs: [ build-and-test ] + steps: + - name: Install Docker + run: | + apt-get update + apt-get install -y docker.io + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Download buildx + run: | + mkdir -p ~/.docker/cli-plugins + curl -sL https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx + chmod +x ~/.docker/cli-plugins/docker-buildx + + - name: Setup buildx + run: | + docker buildx create --use + docker buildx inspect --bootstrap + + - name: Login to Cloud Coding Registry + uses: docker/login-action@v2 + with: + registry: rg.fr-par.scw.cloud/weworkstudio + username: nologin + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@master + with: + context: . + file: ./Dockerfile + push: true + tags: rg.fr-par.scw.cloud/weworkstudio/leblr-backend:preprod + build-args: | + LEBLR_PROFILE=${{ secrets.LEBLR_PROFILE }} + + - name: Cleanup buildx + run: | + docker buildx rm + + - name: Docker cleanup + run: docker system prune -af + + - name: Uninstall Docker + run: | + apt-get purge -y docker.io + apt-get autoremove -y --purge docker.io + rm -rf /var/lib/docker /etc/docker + + deploy_server: + name: Deploy - Docker - serveur + runs-on: ubuntu-latest + needs: [ docker ] + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Déclencher le Webhook + run: | + curl -X POST -H "Content-Type:application/json" -d '{"data": "example" }' ${{ secrets.WEBHOOK_URL }} diff --git a/.gitea/workflows/prod.yml b/.gitea/workflows/prod.yml new file mode 100644 index 0000000..433de9f --- /dev/null +++ b/.gitea/workflows/prod.yml @@ -0,0 +1,105 @@ +name: CI/CD Pipeline for Spring Boot Prod + +on: + push: + branches: + - prod + pull_request: + branches: + - prod + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + # Step 1: Checkout code + - name: Checkout Code + uses: actions/checkout@v3 + + # Step 2: Set up JDK + - name: Set up JDK 23 + uses: actions/setup-java@v3 + with: + java-version: 23 + distribution: 'temurin' + + # Step 3: Cache Maven dependencies + - name: Cache Maven Dependencies + uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + + # Step 4: Build and test + - name: Build and Test + run: | + ./mvnw clean verify + + docker: + runs-on: ubuntu-latest + needs: [ build-and-test ] + steps: + - name: Install Docker + run: | + apt-get update + apt-get install -y docker.io + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Download buildx + run: | + mkdir -p ~/.docker/cli-plugins + curl -sL https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx + chmod +x ~/.docker/cli-plugins/docker-buildx + + - name: Setup buildx + run: | + docker buildx create --use + docker buildx inspect --bootstrap + + - name: Login to Cloud Coding Registry + uses: docker/login-action@v2 + with: + registry: rg.fr-par.scw.cloud/weworkstudio + username: nologin + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@master + with: + context: . + file: ./Dockerfile + push: true + tags: rg.fr-par.scw.cloud/weworkstudio/leblr-backend:prod + build-args: | + LEBLR_PROFILE=${{ secrets.LEBLR_PROFILE }} + + - name: Cleanup buildx + run: | + docker buildx rm + + - name: Docker cleanup + run: docker system prune -af + + - name: Uninstall Docker + run: | + apt-get purge -y docker.io + apt-get autoremove -y --purge docker.io + rm -rf /var/lib/docker /etc/docker + + deploy_server: + name: Deploy - Docker - serveur + runs-on: ubuntu-latest + needs: [ docker ] + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Déclencher le Webhook + run: | + curl -X POST -H "Content-Type:application/json" -d '{"data": "example" }' ${{ secrets.WEBHOOK_URL_PROD }} From b473c4cbe5c99ecd5e507f83d0d31b737956047f Mon Sep 17 00:00:00 2001 From: David Date: Fri, 12 Sep 2025 11:59:48 +0200 Subject: [PATCH 2/2] feature ci --- .gitea/workflows/ci.yml | 4 ++-- .gitea/workflows/prod.yml | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index eca6a75..c510273 100755 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -76,9 +76,9 @@ jobs: context: . file: ./Dockerfile push: true - tags: rg.fr-par.scw.cloud/weworkstudio/leblr-backend:preprod + tags: rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:prod build-args: | - LEBLR_PROFILE=${{ secrets.LEBLR_PROFILE }} + XPEDITIS_PROFILE=prod - name: Cleanup buildx run: | diff --git a/.gitea/workflows/prod.yml b/.gitea/workflows/prod.yml index 433de9f..cdd964c 100644 --- a/.gitea/workflows/prod.yml +++ b/.gitea/workflows/prod.yml @@ -1,12 +1,12 @@ -name: CI/CD Pipeline for Spring Boot Prod +name: CI/CD Pipeline for Spring Boot Dev on: push: branches: - - prod + - dev pull_request: branches: - - prod + - dev jobs: build-and-test: @@ -76,9 +76,9 @@ jobs: context: . file: ./Dockerfile push: true - tags: rg.fr-par.scw.cloud/weworkstudio/leblr-backend:prod + tags: rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:dev build-args: | - LEBLR_PROFILE=${{ secrets.LEBLR_PROFILE }} + XPEDITIS_PROFILE=dev - name: Cleanup buildx run: |