name: Build and run tests on: pull_request: push: branches: - master jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: ref: master # for ratchet - uses: actions/checkout@v4 - uses: ./.github/actions/setup-java - run: ./gradlew spotlessApply - uses: reviewdog/action-suggester@v1 with: tool_name: spotless unit-test: runs-on: ubuntu-latest services: app: image: ghcr.io/deploygate/gradle-plugin-mock-server ports: - 3000/tcp options: >- --health-cmd "curl -fI http://localhost:3000" --health-interval 15s --health-timeout 5s --health-retries 5 --health-start-period 20s steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-java - run: ./gradlew publishToMavenLocal test env: TEST_SERVER_URL: http://localhost:${{ job.services.app.ports[3000] }} - uses: actions/upload-artifact@v4 if: always() with: name: test-reports path: build/reports/tests/test - uses: actions/upload-artifact@v4 if: always() with: name: test-results path: build/test-results/tests/test acceptance-test: runs-on: ubuntu-latest services: app: image: ghcr.io/deploygate/gradle-plugin-mock-server ports: - 3000/tcp options: >- --health-cmd "curl -fI http://localhost:3000" --health-interval 15s --health-timeout 5s --health-retries 5 --health-start-period 20s steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-java - run: ./gradlew testUnrollAcceptanceTest env: TEST_SERVER_URL: http://localhost:3000 - uses: actions/upload-artifact@v4 if: always() with: name: test-reports path: build/reports/tests/testUnrollAcceptanceTest - uses: actions/upload-artifact@v4 if: always() with: name: test-results path: build/test-results/tests/testUnrollAcceptanceTest acceptance-test-runtime-env: runs-on: ubuntu-latest services: app: image: ghcr.io/deploygate/gradle-plugin-mock-server ports: - 3000/tcp options: >- --health-cmd "curl -fI http://localhost:3000" --health-interval 15s --health-timeout 5s --health-retries 5 --health-start-period 20s strategy: fail-fast: false matrix: agp_version: - '7.0.0' - '7.1.0' - '7.2.0' - '7.3.0' - '7.4.0' - '8.0.0' - '8.1.0' - '8.2.0' - '8.3.0' include: - agp_version: '4.2.0' gradle_version: '6.7.1' - agp_version: '4.2.0' gradle_version: '7.0.2' - agp_version: '7.0.0' gradle_version: '7.0.2' - agp_version: '7.1.0' gradle_version: '7.2' - agp_version: '7.2.0' gradle_version: '7.3.3' - agp_version: '7.3.0' gradle_version: '7.4.2' - agp_version: '7.4.0' gradle_version: '7.5' - agp_version: '8.0.0' gradle_version: '8.0' java_version: '17' - agp_version: '8.1.0' gradle_version: '8.0' java_version: '17' - agp_version: '8.2.0' gradle_version: '8.2' java_version: '17' - agp_version: '8.3.0' gradle_version: '8.4' java_version: '17' steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-java with: java-version: ${{ matrix.java_version }} - uses: gradle/gradle-build-action@v3 with: gradle-version: ${{ matrix.gradle_version }} - run: gradle testPluginAcceptanceTest env: TEST_AGP_VERSION: ${{ matrix.agp_version }} TEST_GRADLE_VERSION: ${{ matrix.gradle_version }} TEST_SERVER_URL: http://localhost:${{ job.services.app.ports[3000] }} - uses: actions/upload-artifact@v4 if: always() with: name: test-reports-${{ matrix.agp_version }}-with-${{ matrix.gradle_version }} path: build/reports/tests/testPluginAcceptanceTest - uses: actions/upload-artifact@v4 if: always() with: name: test-results-${{ matrix.agp_version }}-with-${{ matrix.gradle_version }} path: build/test-results/tests/testPluginAcceptanceTest