Skip to content
package

GitHub Action

IPFS/Kubo Setup Action

v0.6.3 Latest version

IPFS/Kubo Setup Action

package

IPFS/Kubo Setup Action

A GitHub Action to install and initialize IPFS

Installation

Copy and paste the following snippet into your .yml file.

              

- name: IPFS/Kubo Setup Action

uses: oduwsdl/setup-ipfs@v0.6.3

Learn more about this action in oduwsdl/setup-ipfs

Choose a version

IPFS/Kubo Setup Action

A GitHub Action to install and initialize kubo (formally named go-ipfs) to run an instance of InterPlanetary File System (IPFS) in all supported runner platforms. This action aims to provide an environment to test DApps that rely on IPFS.

Inputs

This action automatically detects runner platform features like the operating system and the processor architecture.

ipfs_version

IPFS version, automatically resolved to the best matching released binary as per the SemVer format (default: 0.29).

run_daemon

Whether to start IPFS service daemon after installation and initialization (default: false).

Outputs

The setup process sets some output variables to be utilized in any succeeding steps.

resolved_ipfs_version

Latest matching SemVer IPFS version installed.

ipfs_download_url

Utilized IPFS distribution download URL.

peer_id

Identity of the peer as reported on initialization.

welcome_ref

Hash of the Welcome object containing readme, help, and other files.

Example usage

A simple usage in jobs.<job_id>.steps with default latest IPFS version:

- uses: oduwsdl/setup-ipfs@main

Setting up a custom IPFS version (e.g., latest patch of IPFS 0.29.x):

- uses: oduwsdl/setup-ipfs@main
  with:
    ipfs_version: ^0.29

Automatically booting the IPFS API service after installation and initialization:

- uses: oduwsdl/setup-ipfs@main
  with:
    run_daemon: true

A comprehensive example with matrix setup to test against various virsions of IPFS on various platforms:

jobs:
  test-in-matrix:
    strategy:
      matrix:
        os:
          - ubuntu-latest
          - macos-latest
          - windows-latest
        ipfs:
          - 0.27
          - 0.28
          - 0.29
    runs-on: ${{ matrix.os }}
    name: Test on ${{ matrix.os }} with IPFS ${{ matrix.ipfs }}
    steps:
      - name: Set up IPFS ${{ matrix.ipfs }}
        uses: oduwsdl/setup-ipfs@main
        id: ipfs_setup
        with:
          ipfs_version: ${{ matrix.ipfs }}
          run_daemon: true
      - name: Test IPFS ${{ steps.ipfs_setup.outputs.resolved_ipfs_version }} CLI and API
        shell: bash
        run: |
          set -o pipefail
          ipfs cat ${{ steps.ipfs_setup.outputs.welcome_ref }}/readme
          curl -sX POST http://localhost:5001/api/v0/version | jq -e '(.Version=="${{ steps.ipfs_setup.outputs.resolved_ipfs_version }}")'

See this example in action.