diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 576b756..5d55fb6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,10 +1,15 @@ -name: Kubo plugin build, test, release +name: Kubo plugin + +on: + push: + env: GO_VERSION: "1.19.10" # must be same as official ipfs builds jobs: build-artifacts: + name: "Build" strategy: matrix: os: @@ -26,7 +31,7 @@ jobs: - name: Package plugin run: make dist-plugin - name: Record Go environment - run: go env >> "$GITHUB_ENV" + run: go env >> "$GITHUB_ENV" - name: Rename package run: | NAME="nopfs-kubo-plugin_${{ env.RELEASE }}_${{ env.GOHOSTOS }}_${{ env.GOHOSTARCH }}.tar.gz" @@ -39,12 +44,14 @@ jobs: path: nopfs-kubo-plugin_*.tar.gz test-artifacts: + name: "Test" needs: build-artifacts strategy: matrix: os: - ubuntu-latest - - macos-latest +# macos test fail with dist-built ipfs. +# - macos-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 @@ -54,31 +61,38 @@ jobs: uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} - - name: Set Kubo version + - name: Record variables run: | V=`cat nopfs-kubo-plugin/go.mod | grep github.com/ipfs/kubo | grep -o 'v.*'` echo "KUBO_VERSION=$V" >> "$GITHUB_ENV" + GOHOSTOS=`go env GOHOSTOS` + echo "GOHOSTOS=$GOHOSTOS" >> "$GITHUB_ENV" + RELEASE=$(basename ${{ github.ref_name }}) + echo "RELEASE=$RELEASE" >> "$GITHUB_ENV" + echo PLUGIN_ARTIFACT=nopfs-kubo-plugin_${RELEASE}_${GOHOSTOS}_amd64.tar.gz >> "$GITHUB_ENV" - name: Download artifact id: download uses: actions/download-artifact@v3 with: - name: nopfs-kubo-plugin_*_${{ env.OS }}_amd64.tar.gz + name: ${{ env.PLUGIN_ARTIFACT }} - name: Download unpack Kubo run: | - wget https://dist.ipfs.tech/kubo/${{ env.KUBO_VERSION }}/kubo_${{ env.KUBO_VERSION }}_${{ env.GOHOSTOS }}-amd64.tar.gz + wget -nv https://dist.ipfs.tech/kubo/${{ env.KUBO_VERSION }}/kubo_${{ env.KUBO_VERSION }}_${{ env.GOHOSTOS }}-amd64.tar.gz tar -xf kubo_${{ env.KUBO_VERSION }}_${{ env.GOHOSTOS }}-amd64.tar.gz - tar -xf nopfs-kubo-plugin_* - cp kubo/ipfs . - chmod +x ipfs + tar -xf nopfs-kubo-plugin_*.tar.gz + chmod +x kubo/ipfs - name: Initialize IPFS and copy plugin run: | export IPFS_PATH=$(pwd)/ipfs-config - ipfs init + echo "IPFS_PATH=$IPFS_PATH" >> "$GITHUB_ENV" + ./kubo/ipfs init + mkdir -p ipfs-config/plugins cp nopfs-kubo-plugin/nopfs-kubo-plugin ipfs-config/plugins/ - name: Check IPFS works with the plugin - run: ipfs version --all + run: ./kubo/ipfs version --all release: + name: "Release" needs: test-artifacts runs-on: ubuntu-latest steps: @@ -88,7 +102,7 @@ jobs: - name: Extract release name from tag run: | RELEASE=$(basename ${{ github.ref_name }}) - echo "RELEASE=$RELEASE" >> "$GITHUB_ENV" + echo "RELEASE=$RELEASE" >> "$GITHUB_ENV" - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/nopfs-kubo-plugin/v') @@ -96,8 +110,8 @@ jobs: files: nopfs-kubo-plugin_*.tar.gz/* body: | This is a binary build of the NOpfs Kubo plugin targeting Kubo version ${{ env.RELEASE }}. - - To install, download the relevant asset for your platform, unpack the plugin file (`nopfs-kubo-plugin`) and place it in `~/.ipfs/plugins`. - + + To install, download the relevant asset for your platform, unpack the plugin file (`nopfs-kubo-plugin`) and place it in `~/.ipfs/plugins`. MacOS users will need to compile Kubo themselves, as the official releases have no CGO support. + See the included README.md for more information. name: ${{ github.ref_name }}