ipfs-action

August 30, 2022 ยท View on GitHub

IPFS upload GitHub Action. It allows uploading DApps or content to IPFS in a GitHub pipeline.

ipfs action

Inputs

ParameterRequiredDescription
pathYesDirectory's path to upload.
pinNoPin object when adding. (Default true)
pinNameNoHuman name for pin.
serviceNoType of target service to upload. Supported services [ipfs, pinata, infura, filebase]. (Default ipfs)
timeoutNoRequest timeout. (Default 60000 (1 minute))
verboseNoLevel of verbosity [false - quiet, true - verbose]. (Default false)
hostNo[ipfs] IPFS host. Default ipfs.komputing.org
portNo[ipfs] IPFS host's port. (Default 443)
protocolNo[ipfs] IPFS host's protocol. (Default https)
headersNo[ipfs] IPFS headers as json object. (Default {})
keyNo[ipfs] IPNS key name. IPNS key will be published when the key parameter is provided. The key will be created if it does not exist. (Default undefined)
pinataKeyNo[pinata] API Key. Required for pinata service.
pinataSecretNo[pinata] Secret Key. Required for pinata service.
pinataPinNameNo[pinata] Human name for pin. Obsolete, use pinName instead.
filebaseBucketNo[filebase] Bucket to store pin in. Required for filebase service.
filebaseKeyNo[filebase] S3 Access Key. Required for filebase service.
filebaseSecretNo[filebase] S3 Secret Key. Required for filebase service.
infuraProjectIdNo[infura] Project ID. Required for infura service.
infuraProjectSecretNo[infura] Project Secret. Required for infura service.

Outputs

  • hash - IPFS CID
  • cid - IPFS CID
  • ipfs - IPFS CID
  • ipns - IPNS CID if applicable

Documentation

Take a look DApps Delivery Guide

Examples

Pinata starter

uses: aquiladev/ipfs-action@master
with:
  path: ./build
  service: pinata
  pinataKey: ${{ secrets.PINATA_KEY }}
  pinataSecret: ${{ secrets.PINATA_SECRET }}

Infura starter

uses: aquiladev/ipfs-action@master
with:
  path: ./build
  service: infura
  infuraProjectId: ${{ secrets.INFURA_PROJECT_ID }}
  infuraProjectSecret: ${{ secrets.INFURA_PROJECT_SECRET }}

Filebase starter

uses: aquiladev/ipfs-action@v1
with:
  path: ./build
  service: filebase
  pinName: 'ipfs-action'
  filebaseBucket: ${{ secrets.FILEBASE_BUCKET }}
  filebaseKey: ${{ secrets.FILEBASE_KEY }}
  filebaseSecret: ${{ secrets.FILEBASE_SECRET }}