From c1d5bce2bdb77afda39fcd399e4e070a9c9328ac Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Tue, 20 Jan 2026 14:48:49 +0200 Subject: [PATCH 1/8] Replace IPFS installation script with Docker Compose action --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9e9e93c..70684cf8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,6 +22,6 @@ jobs: java-version: 21 cache: 'maven' - name: Install and run IPFS - run: ./install-run-ipfs.sh + uses: hoverkraft-tech/compose-action@v2.4.3 - name: Build & run tests with Maven run: ./mvnw -V verify From 7ce46c1ab0334591d62ed2b08a005ad4af128938 Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Wed, 21 Jan 2026 18:48:14 +0200 Subject: [PATCH 2/8] Turn Kubo's telemetry off --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 36d00764..863ed657 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,8 @@ version: '2' services: ipfs-daemon: image: 'ipfs/kubo:v0.39.0' + environment: + IPFS_TELEMETRY: off ports: - "4001:4001" - "5001:5001" From 60784b13e887a92fe820bc0310973dac45551027 Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Wed, 21 Jan 2026 19:17:36 +0200 Subject: [PATCH 3/8] Parameterize Kubo's Docker image tag --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 863ed657..d91f8072 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '2' services: ipfs-daemon: - image: 'ipfs/kubo:v0.39.0' + image: ipfs/kubo:${KUBO_TAG-release} # default is latest release, see https://github.com/ipfs/kubo#docker environment: IPFS_TELEMETRY: off ports: From 5e944b1137f03c1dd4add2ff01056b6ddd451081 Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Wed, 21 Jan 2026 20:19:33 +0200 Subject: [PATCH 4/8] Run matrix build against multiple Kubo versions --- .github/workflows/ci.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70684cf8..c6e0c3b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,16 @@ jobs: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + kubo: # https://github.com/ipfs/kubo#docker + - v0.39.0 # specific release tag + - release # latest stable release + - master-latest # developer preview, HEAD of master branch + + name: With Kubo tag ${{matrix.kubo}} + steps: - uses: actions/checkout@v6 - name: Set up JDK 21 @@ -21,7 +31,9 @@ jobs: distribution: temurin java-version: 21 cache: 'maven' - - name: Install and run IPFS + - name: Run Kubo ${{matrix.kubo}} IPFS daemon uses: hoverkraft-tech/compose-action@v2.4.3 + env: + KUBO_TAG: ${{matrix.kubo}} - name: Build & run tests with Maven run: ./mvnw -V verify From 03d156f5ee35d852f8c583ff450754b03f410b4a Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Wed, 21 Jan 2026 22:01:35 +0200 Subject: [PATCH 5/8] Store Kubo's logs for troubleshooting --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6e0c3b1..62c798b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,3 +37,6 @@ jobs: KUBO_TAG: ${{matrix.kubo}} - name: Build & run tests with Maven run: ./mvnw -V verify + - if: ${{always()}} + name: Kubo logs + run: docker compose logs From 1b0d26c875f5a692d9cb6ddd4eba1387fed86a6f Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Wed, 21 Jan 2026 21:56:12 +0200 Subject: [PATCH 6/8] Format Docker Compose file with Spotless --- pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pom.xml b/pom.xml index 87335e6a..77e2265f 100644 --- a/pom.xml +++ b/pom.xml @@ -107,6 +107,11 @@ true + + + docker-compose.yml + + true From 6186e92b5bf583f1182e3e5a7c01c2c0e334a087 Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Fri, 23 Jan 2026 20:02:34 +0200 Subject: [PATCH 7/8] Build project only once and run multiple tests without compilation --- .github/workflows/ci.yml | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62c798b2..71c9f486 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,27 @@ on: jobs: build: + runs-on: ubuntu-latest + name: Build w/o tests + steps: + - uses: actions/checkout@v6 + - name: Set up JDK 21 + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: 21 + cache: 'maven' + - name: Build with Maven + run: ./mvnw -V -DskipTests --no-transfer-progress package + - name: Upload artifacts + uses: actions/upload-artifact@v6 + with: + name: maven-build-artifacts + path: target/ + retention-days: 1 + test: + needs: build runs-on: ubuntu-latest strategy: @@ -21,7 +41,7 @@ jobs: - release # latest stable release - master-latest # developer preview, HEAD of master branch - name: With Kubo tag ${{matrix.kubo}} + name: Test with Kubo tag ${{matrix.kubo}} steps: - uses: actions/checkout@v6 @@ -31,12 +51,17 @@ jobs: distribution: temurin java-version: 21 cache: 'maven' + - name: Download compiled artifacts + uses: actions/download-artifact@v5 + with: + name: maven-build-artifacts + path: target/ - name: Run Kubo ${{matrix.kubo}} IPFS daemon uses: hoverkraft-tech/compose-action@v2.4.3 env: KUBO_TAG: ${{matrix.kubo}} - name: Build & run tests with Maven - run: ./mvnw -V verify + run: ./mvnw -V --no-transfer-progress -Dmaven.compiler.skip=true verify - if: ${{always()}} name: Kubo logs run: docker compose logs From e29c71305573e8ba4e11977e4aa7d80ece9b8e86 Mon Sep 17 00:00:00 2001 From: Mykola Nikishov Date: Wed, 28 Jan 2026 01:51:12 +0200 Subject: [PATCH 8/8] Install Docker Compose explicitly --- .github/workflows/ci.yml | 11 ++++++++--- docker-compose.yml | 1 - 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 71c9f486..0b4402ad 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,12 +56,17 @@ jobs: with: name: maven-build-artifacts path: target/ + - name: Set up Docker Compose + run: sudo apt-get install docker-compose - name: Run Kubo ${{matrix.kubo}} IPFS daemon - uses: hoverkraft-tech/compose-action@v2.4.3 env: KUBO_TAG: ${{matrix.kubo}} + run: docker compose up -d - name: Build & run tests with Maven run: ./mvnw -V --no-transfer-progress -Dmaven.compiler.skip=true verify - - if: ${{always()}} - name: Kubo logs + - name: Kubo logs + if: ${{always()}} run: docker compose logs + - name: Shut down Docker Compose + if: always() + run: docker compose down diff --git a/docker-compose.yml b/docker-compose.yml index d91f8072..c89c03ad 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,3 @@ -version: '2' services: ipfs-daemon: image: ipfs/kubo:${KUBO_TAG-release} # default is latest release, see https://github.com/ipfs/kubo#docker