name: Docker-Compose Build and Test on: push: paths-ignore: - "**.md" branches: - master pull_request: jobs: build-test: runs-on: ubuntu-latest strategy: matrix: docker-compose-file: - docker-compose.yml - testing/docker-compose.cockroachdb.yml - testing/docker-compose.yugabytedb.yml dockerfile: - Dockerfile.ci - Dockerfile.azul.ci - Dockerfile.openj9.ci - Dockerfile.graalvm-jvm.ci include: - sleep: 20 - docker-compose-file: testing/docker-compose.cockroachdb.yml sleep: 30 - docker-compose-file: testing/docker-compose.yugabytedb.yml sleep: 120 fail-fast: false steps: - uses: actions/checkout@v3 - name: Create Version File run: echo $(git log -1 --date=short --pretty=format:%cd)-$(git rev-parse --short HEAD) > VERSION - name: set up JDK 17 uses: actions/setup-java@v3 with: java-version: 17 distribution: temurin cache: "gradle" - name: Run Build run: ./gradlew shadowJar - run: mv build/libs/piped-*-all.jar piped.jar - name: Build Image Locally uses: docker/build-push-action@v4 with: context: . load: true file: ${{ matrix.dockerfile }} tags: 1337kavin/piped:latest - name: Start Docker-Compose services run: docker-compose -f ${{ matrix.docker-compose-file }} up -d && sleep ${{ matrix.sleep }} - name: Run tests run: ./testing/api-test.sh - name: Collect services logs if: failure() run: docker-compose -f ${{ matrix.docker-compose-file }} logs