name: CI — Tests & Docker Build on: push: branches: - main - 'feat/**' pull_request: jobs: # test: # name: Tests # runs-on: ubuntu-latest # services: # postgres: # image: postgres:16 # env: # POSTGRES_DB: olhar_test # POSTGRES_USER: olhar # POSTGRES_PASSWORD: olhar # ports: # - 5432:5432 # steps: # - name: Checkout # uses: actions/checkout@v4 # - name: Build image de test # run: docker build -f Dockerfile.test -t olhar-api-test:ci . # - name: Lancer les tests # run: | # docker run --rm \ # --network host \ # -e SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/olhar_test \ # -e SPRING_DATASOURCE_USERNAME=olhar \ # -e SPRING_DATASOURCE_PASSWORD=olhar \ # -e SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.postgresql.Driver \ # -e SECURITY_JWT_SECRET=test-secret-key-for-ci-testing-only-must-be-long-enough \ # olhar-api-test:ci \ # ./gradlew test --no-daemon build-and-push: name: Build & push image Docker needs: test runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' steps: - name: Checkout uses: actions/checkout@v4 - name: Lire la version depuis build.gradle id: version run: echo "VERSION=$(grep '^version' build.gradle | awk -F"'" '{print $2}')" >> $GITHUB_OUTPUT - name: Setup Buildx uses: docker/setup-buildx-action@v3 - name: Login registry Gitea uses: docker/login-action@v3 with: registry: git.goutailler-olivier.com username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} - name: Build & push image uses: docker/build-push-action@v5 with: context: . file: Dockerfile push: true tags: | git.goutailler-olivier.com/gato/olhar-api:latest git.goutailler-olivier.com/gato/olhar-api:${{ steps.version.outputs.VERSION }} - name: Trigger déploiement Watchtower run: | wget -q --post-data='' \ --header="Authorization: Bearer ${{ secrets.WATCHTOWER_TOKEN }}" \ https://watchtower.goutailler-olivier.com/v1/update \ -O /dev/null