name: CI-quick-check

on:
  workflow_dispatch:
  push:
    branches-ignore: main

jobs:
  build-distribution:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout sources
      uses: actions/checkout@v4
    - name: Build and upload distribution
      uses: ./.github/actions/build-dist

  run-unit-tests:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout sources
      uses: actions/checkout@v4
    - name: Configure Gradle as default for unit test
      uses: ./
      with:
        gradle-version: 8.4
    - name: Run tests
      run: |
        npm install
        npm run all

  action-inputs:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-action-inputs.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  cache-cleanup:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-cache-cleanup.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true
      cache-key-prefix: ${{github.run_number}}- # Requires a fresh cache entry each run

  caching-config:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-action-inputs-caching.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  dependency-graph:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-dependency-graph.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  execution-with-caching:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-execution-with-caching.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  execution:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-execution.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  gradle-enterprise-injection:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-inject-gradle-enterprise.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true
    secrets:
      GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_SOLUTIONS_ACCESS_TOKEN }}

  provision-gradle-versions:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-provision-gradle-versions.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  # restore-configuration-cache:
  #   needs: build-distribution
  #   uses: ./.github/workflows/integ-test-restore-configuration-cache.yml
  #   with:
  #     runner-os: '["ubuntu-latest"]'
  #     download-dist: true

  restore-containerized-gradle-home:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-restore-containerized-gradle-home.yml
    with:
      download-dist: true

  restore-custom-gradle-home:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-restore-custom-gradle-home.yml
    with:
      download-dist: true

  restore-gradle-home:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-restore-gradle-home.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  restore-java-toolchain:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-restore-java-toolchain.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  sample-kotlin-dsl:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-sample-kotlin-dsl.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  sample-gradle-plugin:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-sample-gradle-plugin.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true

  toolchain-detection:
    needs: build-distribution
    uses: ./.github/workflows/integ-test-detect-java-toolchains.yml
    with:
      runner-os: '["ubuntu-latest"]'
      download-dist: true