# vibe_erp — main CI build. # # Runs the Gradle build and tests on every PR and on pushes to main. # A separate job builds (but does not push) the Docker image on main. name: build on: push: branches: [main] pull_request: jobs: gradle: name: gradle build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: temurin java-version: "21" - name: Cache Gradle uses: actions/cache@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'gradle/libs.versions.toml') }} restore-keys: | gradle-${{ runner.os }}- - name: Build run: ./gradlew build --no-daemon - name: api-v1 tests run: ./gradlew :api:api-v1:test --no-daemon - name: Upload test reports on failure if: failure() uses: actions/upload-artifact@v4 with: name: test-reports path: | **/build/reports/tests/ **/build/test-results/ docker: name: docker image runs-on: ubuntu-latest needs: gradle if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build image (no push) uses: docker/build-push-action@v6 with: context: . file: Dockerfile push: false tags: vibeerp/vibe-erp:ci