Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ibnesayeed/setup-ipfs
A GitHub Action to install and initialize IPFS
https://github.com/ibnesayeed/setup-ipfs
actions cicd github-actions github-workflow ipfs ipfs-installation ipfs-setup javascript javascript-action nodejs testing
Last synced: 17 days ago
JSON representation
A GitHub Action to install and initialize IPFS
- Host: GitHub
- URL: https://github.com/ibnesayeed/setup-ipfs
- Owner: ibnesayeed
- License: mit
- Created: 2020-05-11T21:20:45.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-09-25T15:34:42.000Z (about 1 year ago)
- Last Synced: 2024-11-25T17:47:07.754Z (27 days ago)
- Topics: actions, cicd, github-actions, github-workflow, ipfs, ipfs-installation, ipfs-setup, javascript, javascript-action, nodejs, testing
- Language: JavaScript
- Size: 1000 KB
- Stars: 19
- Watchers: 3
- Forks: 6
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# IPFS Setup Action
A GitHub Action to install and initialize [go-ipfs](https://github.com/ipfs/go-ipfs) to run an instance of [InterPlanetary File System (IPFS)](https://ipfs.io/) 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](https://dist.ipfs.io/go-ipfs/versions) as per the [SemVer format](https://semver.org/) (default: `0.6`).
### `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..steps` with default latest IPFS version:
```yml
- uses: ibnesayeed/setup-ipfs@master
```Setting up a custom IPFS version (e.g., latest patch of IPFS `0.4.x`):
```yml
- uses: ibnesayeed/setup-ipfs@master
with:
ipfs_version: ^0.4
```Automatically booting the IPFS API service after installation and initialization:
```yml
- uses: ibnesayeed/setup-ipfs@master
with:
run_daemon: true
```A comprehensive example with matrix setup to test against various virsions of IPFS on various platforms:
```yml
jobs:
test-in-matrix:
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
ipfs:
- 0.4
- 0.5
- 0.6
runs-on: ${{ matrix.os }}
name: Test on ${{ matrix.os }} with IPFS ${{ matrix.ipfs }}
steps:
- name: Set up IPFS ${{ matrix.ipfs }}
uses: ibnesayeed/setup-ipfs@master
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](https://github.com/ibnesayeed/setup-ipfs/blob/master/.github/workflows/test.yml).