Skip to content

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


Notifications You must be signed in to change notification settings


Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation


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

ipfs action


Parameter Required Description
path Yes Directory's path to upload.
pin No Pin object when adding. (Default true)
pinName No Human name for pin.
service No Type of target service to upload. Supported services [ipfs, pinata, infura, filebase]. (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
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. Obsolete, use pinName instead.
filebaseBucket No [filebase] Bucket to store pin in. Required for filebase service.
filebaseKey No [filebase] S3 Access Key. Required for filebase service.
filebaseSecret No [filebase] S3 Secret Key. Required for filebase service.
infuraProjectId No [infura] Project ID. Required for infura service.
infuraProjectSecret No [infura] Project Secret. Required for infura service.


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


Take a look DApps Delivery Guide


Pinata starter

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

Infura starter

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

Filebase starter

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