CI: update aqua-ipfs version in Builtin Services (#22)

BREAKING CHANGE: IPFS builtin service id changed from 'ipfs-adapter' to 'aqua-ipfs'
This commit is contained in:
folex 2021-08-23 18:24:52 +03:00 committed by GitHub
parent 78a53e1bdd
commit 25a493ab2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 81 additions and 28 deletions

View File

@ -16,7 +16,7 @@ jobs:
sudo bash .github/download_marine.sh
- restore_cache:
keys:
- ipfs-adapter00-{{ checksum "./service/pure/Cargo.lock" }}-{{ checksum "./service/effector/Cargo.lock" }}
- aqua-ipfs00-{{ checksum "./service/pure/Cargo.lock" }}-{{ checksum "./service/effector/Cargo.lock" }}
- run: |
rustup toolchain install nightly-2021-04-24-x86_64-unknown-linux-gnu
rustup default nightly-2021-04-24-x86_64-unknown-linux-gnu
@ -28,7 +28,7 @@ jobs:
paths:
- ~/.cargo
- ~/.rustup
key: ipfs-adapter00-{{ checksum "./service/pure/Cargo.lock" }}-{{ checksum "./service/effector/Cargo.lock" }}
key: aqua-ipfs00-{{ checksum "./service/pure/Cargo.lock" }}-{{ checksum "./service/effector/Cargo.lock" }}
workflows:

View File

@ -66,15 +66,15 @@ jobs:
rustup target add wasm32-wasi --toolchain nightly-2021-04-24-x86_64-unknown-linux-gnu
### Build
- name: Build ipfs-adapter
- name: Build aqua-ipfs
working-directory: ./service
run: ./build.sh
- name: Create distribution package
working-directory: ./service
run: |
mv artifacts ipfs-adapter
tar -zcvf ipfs-adapter.tar.gz ipfs-adapter
mv artifacts aqua-ipfs
tar -zcvf aqua-ipfs.tar.gz aqua-ipfs
- name: Compile Aqua to TypeScript
working-directory: ./aqua
@ -98,12 +98,13 @@ jobs:
### Publish
- name: Release to GitHub
id: release
uses: softprops/action-gh-release@v1
with:
name: aqua-ipfs ${{ env.RELEASE_VERSION }}
tag_name: ${{ env.RELEASE_VERSION }}
files: |
./service/ipfs-adapter.tar.gz
./service/aqua-ipfs.tar.gz
body: ${{steps.github_release.outputs.changelog}}
draft: false
prerelease: false
@ -136,3 +137,55 @@ jobs:
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
working-directory: ./aqua/target/typescript
## Update Builtin Services repo
- name: Get tar.gz URL
id: package-url
uses: actions/github-script@v4
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
result-encoding: string
script: |
try {
let assets = await github.repos.listReleaseAssets({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: "${{ steps.release.outputs.id }}",
});
console.dir(assets);
let package = assets.data.find((a) => a.name === 'aqua-ipfs.tar.gz');
let url = package.browser_download_url;
console.log("URL: " + url);
return url;
} catch (e) {
console.log("Err: " + e);
throw e;
}
- name: Calculate SHA256
run: |
du -hs ./service/aqua-ipfs.tar.gz
echo $(sha256sum ./service/aqua-ipfs.tar.gz)
echo "SHA256=$(sha256sum ./service/aqua-ipfs.tar.gz | awk '{ print $1 }')" >> $GITHUB_ENV
- name: Update version in builtins repo
uses: benc-uk/workflow-dispatch@v1
with:
workflow: update_service
repo: fluencelabs/builtin-services
ref: 'main'
token: ${{ secrets.PERSONAL_TOKEN }}
inputs: '{
"name": "aqua-ipfs",
"version": "${{ env.RELEASE_VERSION }}",
"url": "${{ steps.package-url.outputs.result }}",
"sha256": "${{ env.SHA256 }}"
}'
- name: Log notice
uses: actions/github-script@v4
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
console.dir(core);
core.info("aqua-ipfs was updated to ${{ env.RELEASE_VERSION }} in Builtin Services Repo");

View File

@ -27,7 +27,7 @@ cid === localCID // true
```
## Directory structure
- `aqua` Aqua API of IPFS-adapter, go to its [README](/aqua/README.md)
- `aqua` Aqua API of AquaIPFS. See [aqua/README](/aqua/README.md)
- `service` contains Rust service that implements all the IPFS calls by using `ipfs` cli mounted binary
- `example` A simple example of how to use ipfs adapter from TypeScript
- `local-network` contains Docker Compose YAML config to run a local Fluence network of 3 nodes
@ -35,4 +35,4 @@ cid === localCID // true
# Contribution
Contributions are welcome!
`ipfs-adapter` integrates with IPFS by using `ipfs` CLI, so it's possible to expose virtually any IPFS API to Aqua. Feel free to open an issue or contribute APIs and patterns you find useful.
`aqua-ipfs` integrates with IPFS by using `ipfs` CLI, so it's possible to expose virtually any IPFS API to Aqua. Feel free to open an issue or contribute APIs and patterns you find useful.

View File

@ -1,4 +1,4 @@
# Aqua API of IPFS-adapter
# Aqua API of AquaIPFS
## Documentation
See [Aqua Book](https://fluence.dev/aqua-book/libraries/aqua-ipfs).
@ -6,7 +6,7 @@ See [Aqua Book](https://fluence.dev/aqua-book/libraries/aqua-ipfs).
## API
Public API is defined in [ipfs-api.aqua](/aqua/ipfs-api.aqua).
ipfs-adapter service API is defined in [ipfs.aqua](/aqua/ipfs.aqua).
aqua-ipfs service API is defined in [ipfs.aqua](/aqua/ipfs.aqua).
## How to use Aqua API in TypeScript
There's a simple example in [example](/example/index.ts)

View File

@ -46,7 +46,7 @@ func get_and_cache(
<- localCid
-- Upload file `path` to IPFS node running on `node`
-- path should exist & be available to `ipfs-adapter`
-- path should exist & be available to `aqua-ipfs`
func put(node: PeerId, path: string) -> IpfsPutResult:
on node:
result <- Ipfs.put(path)
@ -58,7 +58,7 @@ func get_from(node: PeerId, cid: CID, from: Multiaddr) -> IpfsGetResult:
result <- Ipfs.get_from(cid, from)
<- result
-- Set timeout for IPFS calls in `ipfs-adapter`
-- Set timeout for IPFS calls in `aqua-ipfs`
func set_timeout(node: PeerId, timeout_sec: u64):
on node:
Ipfs.set_timeout(timeout_sec)

View File

@ -17,7 +17,7 @@ data IpfsResult:
success: bool
error: string
service Ipfs("ipfs-adapter"):
service Ipfs("aqua-ipfs"):
connect(multiaddr: string) -> IpfsResult
get(hash: string) -> IpfsGetResult
get_external_api_multiaddr() -> IpfsMultiaddrResult

View File

@ -32,7 +32,7 @@ export async function set_timeout(client: FluenceClient, node: string, timeout_s
(call -relay- ("op" "noop") [])
)
(xor
(call node ("ipfs-adapter" "set_timeout") [timeout_sec])
(call node ("aqua-ipfs" "set_timeout") [timeout_sec])
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
@ -101,12 +101,12 @@ export async function get_and_cache(client: FluenceClient, node: string, cid: st
)
(xor
(seq
(call node ("ipfs-adapter" "get_from") [cid from] get)
(call node ("aqua-ipfs" "get_from") [cid from] get)
(xor
(match get.$.success! true
(xor
(seq
(call node ("ipfs-adapter" "put") [get.$.path!] put)
(call node ("aqua-ipfs" "put") [get.$.path!] put)
(xor
(match put.$.success! true
(xor
@ -228,7 +228,7 @@ export async function get_from(client: FluenceClient, node: string, cid: string,
(call -relay- ("op" "noop") [])
)
(xor
(call node ("ipfs-adapter" "get_from") [cid from] result)
(call node ("aqua-ipfs" "get_from") [cid from] result)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
@ -299,7 +299,7 @@ export async function get_local_api_multiaddr(client: FluenceClient, node: strin
(call -relay- ("op" "noop") [])
)
(xor
(call node ("ipfs-adapter" "get_local_api_multiaddr") [] result)
(call node ("aqua-ipfs" "get_local_api_multiaddr") [] result)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
@ -368,7 +368,7 @@ export async function get_external_swarm_multiaddr(client: FluenceClient, node:
(call -relay- ("op" "noop") [])
)
(xor
(call node ("ipfs-adapter" "get_external_swarm_multiaddr") [] result)
(call node ("aqua-ipfs" "get_external_swarm_multiaddr") [] result)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
@ -440,7 +440,7 @@ export async function put(client: FluenceClient, node: string, path: string, con
(call -relay- ("op" "noop") [])
)
(xor
(call node ("ipfs-adapter" "put") [path] result)
(call node ("aqua-ipfs" "put") [path] result)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
@ -510,7 +510,7 @@ export async function get_external_api_multiaddr(client: FluenceClient, node: st
(call -relay- ("op" "noop") [])
)
(xor
(call node ("ipfs-adapter" "get_external_api_multiaddr") [] result)
(call node ("aqua-ipfs" "get_external_api_multiaddr") [] result)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])

View File

@ -1,7 +1,7 @@
(seq
(seq
(seq
(call relay ("ipfs-adapter" "set_local_api_multiaddr") [local_api_multiaddr] local_api_res)
(call relay ("aqua-ipfs" "set_local_api_multiaddr") [local_api_multiaddr] local_api_res)
(xor
(match local_api_res.$.success! true
(null)
@ -10,7 +10,7 @@
)
)
(seq
(call relay ("ipfs-adapter" "set_external_api_multiaddr") [external_api_multiaddr] external_api_res)
(call relay ("aqua-ipfs" "set_external_api_multiaddr") [external_api_multiaddr] external_api_res)
(xor
(match external_api_res.$.success! true
(null)
@ -20,7 +20,7 @@
)
)
(seq
(call relay ("ipfs-adapter" "set_external_swarm_multiaddr") [external_swarm_multiaddr] external_swarm_res)
(call relay ("aqua-ipfs" "set_external_swarm_multiaddr") [external_swarm_multiaddr] external_swarm_res)
(xor
(match external_swarm_res.$.success! true
(call %init_peer_id% ("op" "return") [true])

View File

@ -1,5 +1,5 @@
{
"external_swarm_multiaddr": "$FLUENCE_ENV_IPFS_ADAPTER_EXTERNAL_SWARM_MULTIADDR",
"local_api_multiaddr": "$FLUENCE_ENV_IPFS_ADAPTER_LOCAL_API_MULTIADDR",
"external_api_multiaddr": "$FLUENCE_ENV_IPFS_ADAPTER_EXTERNAL_API_MULTIADDR"
"external_swarm_multiaddr": "$FLUENCE_ENV_AQUA_IPFS_EXTERNAL_SWARM_MULTIADDR",
"local_api_multiaddr": "$FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR",
"external_api_multiaddr": "$FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR"
}

View File

@ -18,4 +18,4 @@ mkdir -p artifacts
rm -f artifacts/*.wasm
cp target/wasm32-wasi/release/ipfs_effector.wasm artifacts/
cp target/wasm32-wasi/release/ipfs_pure.wasm artifacts/
marine aqua artifacts/ipfs_pure.wasm -s Ipfs -i ipfs-adapter >../aqua/ipfs.aqua
marine aqua artifacts/ipfs_pure.wasm -s Ipfs -i aqua-ipfs >../aqua/ipfs.aqua