From 5fb08f66c5d703405ffce4ba3dc5dd2c9025f589 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Mon, 14 Aug 2023 18:26:14 +0100 Subject: [PATCH] actions: add action to test migrations --- .../docker-migrations-build-test.yml | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/docker-migrations-build-test.yml diff --git a/.github/workflows/docker-migrations-build-test.yml b/.github/workflows/docker-migrations-build-test.yml new file mode 100644 index 0000000..293b2e6 --- /dev/null +++ b/.github/workflows/docker-migrations-build-test.yml @@ -0,0 +1,82 @@ +name: Docker-Compose Build and Test Migration + +on: + pull_request: + paths: + - "src/main/resources/changelog/**" + - "src/main/java/me/kavin/piped/utils/obj/db/**" + +jobs: + build-new: + uses: ./.github/workflows/fat-build.yml + build-old: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.base.sha }} + - 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 + - uses: actions/upload-artifact@v3 + with: + name: piped-old.jar + path: piped.jar + + docker-build-test: + needs: [ build-new, build-old ] + 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 + 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 + - run: echo "unknown" > VERSION + - uses: actions/download-artifact@v3 + with: + name: piped-old.jar + - name: Build Old 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 }} + - run: rm piped.jar + - uses: actions/download-artifact@v3 + with: + name: piped.jar + - name: Build New 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