/ipfs-action

GitHub Action for upload to IPFS. Supports Pinata, Infura pinning service as well as direct upload.

Primary LanguageJavaScriptMIT LicenseMIT

ipfs-action

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

ipfs action

Inputs

Parameter Required Description
path Yes Directory's path to upload.
service No Type of target service to upload. Supported services [ipfs, pinata, infura]. Default ipfs
timeout No Request timeout. Default 60000 (1 minute)
verbose No Level of verbosity [false - quiet, true - verbose]. Default false
host No [ipfs] IPFS host. Default ipfs.komputing.org
port No [ipfs] IPFS host's port. Default 443
protocol No [ipfs] IPFS host's protocol. Default https
headers No [ipfs] IPFS headers as json object. Default {}
key No [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
pinataKey No [pinata] API Key. Required for pinata service.
pinataSecret No [pinata] Secret Key. Required for pinata service.
pinataPinName No [pinata] Human name for pin.
infuraProjectId No [infura] Project ID. Required for infura service.
infuraProjectSecret No [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 }}

Infure starter

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