mirror of
https://github.com/fluencelabs/aqua.git
synced 2024-12-04 14:40:17 +00:00
chore: Refactor CI after moving tests from aqua-playground [fixes FLU-352] (#763)
* move integration tests to repo * Move aqua-playground CI * Fix * Use local aqua cli * Move aqua tests to e2e * Test new build.sbt * Fix? * Test * Test * Test * Test * Update * Fix * Fix * Fix * fix * Fix * Rename aqua-api to api directory for consistency * Migrate to pnpm * Add bump version script * Test snapshot workflow * fix * Fix * Fix * Setup pnpm * Update pnpm version * Fix * Do not publish tests * Update * Fix * Fix? * delete import * Fix * Fix * Fix? * Fix * Fix * Use main branch * Fix quotes * Fix * Fix release * Cleanup * Remove compiled examples * Cleanup --------- Co-authored-by: DieMyst <dmitry.shakhtarin@fluence.ai>
This commit is contained in:
parent
6cc3a969d2
commit
aa10706506
134
.github/e2e/docker-compose.yml
vendored
Normal file
134
.github/e2e/docker-compose.yml
vendored
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
networks:
|
||||||
|
fluence:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 10.50.10.0/24
|
||||||
|
|
||||||
|
services:
|
||||||
|
fluence-1:
|
||||||
|
image: ${RUST_PEER_IMAGE}
|
||||||
|
ports:
|
||||||
|
- 7771:7771
|
||||||
|
- 9991:9991
|
||||||
|
command:
|
||||||
|
- --aqua-pool-size=2
|
||||||
|
- -t=7771
|
||||||
|
- -w=9991
|
||||||
|
- -x=10.50.10.10
|
||||||
|
- --external-maddrs
|
||||||
|
- /dns4/fluence-1/tcp/7771
|
||||||
|
- /dns4/fluence-1/tcp/9991/ws
|
||||||
|
- --allow-private-ips
|
||||||
|
- --local
|
||||||
|
# - --bootstraps=/dns/fluence-1/tcp/7771
|
||||||
|
# 12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR
|
||||||
|
- -k=hK62afickoeP2uZbmSkAYXxxqP8ozq16VRN7qfTP719EHC5V5tjrtW57BSjUr8GvsEXmJRbtejUWyPZ2rZMyQdq
|
||||||
|
networks:
|
||||||
|
fluence:
|
||||||
|
ipv4_address: 10.50.10.10
|
||||||
|
|
||||||
|
fluence-2:
|
||||||
|
image: ${RUST_PEER_IMAGE}
|
||||||
|
ports:
|
||||||
|
- 7772:7772
|
||||||
|
- 9992:9992
|
||||||
|
command:
|
||||||
|
- --aqua-pool-size=2
|
||||||
|
- -t=7772
|
||||||
|
- -w=9992
|
||||||
|
- -x=10.50.10.20
|
||||||
|
- --external-maddrs
|
||||||
|
- /dns4/fluence-2/tcp/7772
|
||||||
|
- /dns4/fluence-2/tcp/9992/ws
|
||||||
|
- --allow-private-ips
|
||||||
|
- --bootstraps=/dns/fluence-1/tcp/7771
|
||||||
|
# 12D3KooWQdpukY3p2DhDfUfDgphAqsGu5ZUrmQ4mcHSGrRag6gQK
|
||||||
|
- -k=2WijTVdhVRzyZamWjqPx4V4iNMrajegNMwNa2PmvPSZV6RRpo5M2fsPWdQr22HVRubuJhhSw8BrWiGt6FPhFAuXy
|
||||||
|
networks:
|
||||||
|
fluence:
|
||||||
|
ipv4_address: 10.50.10.20
|
||||||
|
|
||||||
|
fluence-3:
|
||||||
|
image: ${RUST_PEER_IMAGE}
|
||||||
|
ports:
|
||||||
|
- 7773:7773
|
||||||
|
- 9993:9993
|
||||||
|
command:
|
||||||
|
- --aqua-pool-size=2
|
||||||
|
- -t=7773
|
||||||
|
- -w=9993
|
||||||
|
- -x=10.50.10.30
|
||||||
|
- --external-maddrs
|
||||||
|
- /dns4/fluence-3/tcp/7773
|
||||||
|
- /dns4/fluence-3/tcp/9993/ws
|
||||||
|
- --allow-private-ips
|
||||||
|
- --bootstraps=/dns/fluence-1/tcp/7771
|
||||||
|
# 12D3KooWRT8V5awYdEZm6aAV9HWweCEbhWd7df4wehqHZXAB7yMZ
|
||||||
|
- -k=2n2wBVanBeu2GWtvKBdrYK9DJAocgG3PrTUXMharq6TTfxqTL4sLdXL9BF23n6rsnkAY5pR9vBtx2uWYDQAiZdrX
|
||||||
|
networks:
|
||||||
|
fluence:
|
||||||
|
ipv4_address: 10.50.10.30
|
||||||
|
|
||||||
|
fluence-4:
|
||||||
|
image: ${RUST_PEER_IMAGE}
|
||||||
|
ports:
|
||||||
|
- 7774:7774
|
||||||
|
- 9994:9994
|
||||||
|
command:
|
||||||
|
- --aqua-pool-size=2
|
||||||
|
- -t=7774
|
||||||
|
- -w=9994
|
||||||
|
- -x=10.50.10.40
|
||||||
|
- --external-maddrs
|
||||||
|
- /dns4/fluence-4/tcp/7774
|
||||||
|
- /dns4/fluence-4/tcp/9994/ws
|
||||||
|
- --allow-private-ips
|
||||||
|
- --bootstraps=/dns/fluence-1/tcp/7771
|
||||||
|
# 12D3KooWBzLSu9RL7wLP6oUowzCbkCj2AGBSXkHSJKuq4wwTfwof
|
||||||
|
- -k=4zp8ucAikkjB8CmkufYiFBW4QCDUCbQG7yMjviX7W8bMyN5rfChQ2Pi5QCWThrCTbAm9uq5nbFbxtFcNZq3De4dX
|
||||||
|
networks:
|
||||||
|
fluence:
|
||||||
|
ipv4_address: 10.50.10.40
|
||||||
|
|
||||||
|
fluence-5:
|
||||||
|
image: ${RUST_PEER_IMAGE}
|
||||||
|
ports:
|
||||||
|
- 7775:7775
|
||||||
|
- 9995:9995
|
||||||
|
command:
|
||||||
|
- --aqua-pool-size=2
|
||||||
|
- -t=7775
|
||||||
|
- -w=9995
|
||||||
|
- -x=10.50.10.50
|
||||||
|
- --external-maddrs
|
||||||
|
- /dns4/fluence-5/tcp/7775
|
||||||
|
- /dns4/fluence-5/tcp/9995/ws
|
||||||
|
- --allow-private-ips
|
||||||
|
- --bootstraps=/dns/fluence-1/tcp/7771
|
||||||
|
# 12D3KooWBf6hFgrnXwHkBnwPGMysP3b1NJe5HGtAWPYfwmQ2MBiU
|
||||||
|
- -k=3ry26rm5gkJXvdqRH4FoM3ezWq4xVVsBQF7wtKq4E4pbuaa6p1F84tNqifUS7DdfJL9hs2gcdW64Wc342vHZHMUp
|
||||||
|
networks:
|
||||||
|
fluence:
|
||||||
|
ipv4_address: 10.50.10.50
|
||||||
|
|
||||||
|
fluence-6:
|
||||||
|
image: ${RUST_PEER_IMAGE}
|
||||||
|
ports:
|
||||||
|
- 7776:7776
|
||||||
|
- 9996:9996
|
||||||
|
command:
|
||||||
|
- --aqua-pool-size=2
|
||||||
|
- -t=7776
|
||||||
|
- -w=9996
|
||||||
|
- --bootstraps=/dns/fluence-1/tcp/7771
|
||||||
|
- -x=10.50.10.60
|
||||||
|
- --external-maddrs
|
||||||
|
- /dns4/fluence-6/tcp/7776
|
||||||
|
- /dns4/fluence-6/tcp/9996/ws
|
||||||
|
- --allow-private-ips
|
||||||
|
# 12D3KooWPisGn7JhooWhggndz25WM7vQ2JmA121EV8jUDQ5xMovJ
|
||||||
|
- -k=5Qh8bB1sF28uLPwr3HTvEksCeC6mAWQvebCfcgv9y6j4qKwSzNKm2tzLUg4nACUEo2KZpBw11gNCnwaAdM7o1pEn
|
||||||
|
networks:
|
||||||
|
fluence:
|
||||||
|
ipv4_address: 10.50.10.60
|
5
.github/workflows/binary.yml
vendored
5
.github/workflows/binary.yml
vendored
@ -63,3 +63,8 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: aqua-${{ inputs.os }}-${{ inputs.arch }}
|
name: aqua-${{ inputs.os }}-${{ inputs.arch }}
|
||||||
path: cli/cli/.jvm/target/graalvm-native-image/cli
|
path: cli/cli/.jvm/target/graalvm-native-image/cli
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: aqua-${{ inputs.os }}-${{ inputs.arch }}
|
||||||
|
path: cli/cli/.jvm/target/graalvm-native-image/cli
|
||||||
|
35
.github/workflows/e2e.yml
vendored
35
.github/workflows/e2e.yml
vendored
@ -27,6 +27,7 @@ concurrency:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
aqua:
|
aqua:
|
||||||
|
name: "aqua"
|
||||||
if: >
|
if: >
|
||||||
github.event_name == 'push' ||
|
github.event_name == 'push' ||
|
||||||
contains(github.event.pull_request.labels.*.name, 'e2e')
|
contains(github.event.pull_request.labels.*.name, 'e2e')
|
||||||
@ -34,38 +35,24 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
ref: ${{ github.ref }}
|
ref: ${{ github.ref }}
|
||||||
|
|
||||||
aqua-playground:
|
fluence-cli-snapshot:
|
||||||
|
name: "fluence-cli"
|
||||||
needs: aqua
|
needs: aqua
|
||||||
uses: fluencelabs/aqua-playground/.github/workflows/tests.yml@master
|
uses: fluencelabs/fluence-cli/.github/workflows/snapshot.yml@main
|
||||||
with:
|
with:
|
||||||
aqua-version: "${{ needs.aqua.outputs.aqua-version }}"
|
aqua-snapshots: "${{ needs.aqua.outputs.aqua-snapshots }}"
|
||||||
|
|
||||||
registry:
|
|
||||||
needs: aqua
|
|
||||||
uses: fluencelabs/registry/.github/workflows/tests.yml@main
|
|
||||||
with:
|
|
||||||
aqua-version: "${{ needs.aqua.outputs.aqua-version }}"
|
|
||||||
|
|
||||||
fluence-cli:
|
fluence-cli:
|
||||||
needs: aqua
|
needs: aqua
|
||||||
uses: fluencelabs/fluence-cli/.github/workflows/tests.yml@main
|
uses: fluencelabs/fluence-cli/.github/workflows/tests.yml@main
|
||||||
with:
|
with:
|
||||||
aqua-api-version: "${{ needs.aqua.outputs.aqua-api-version }}"
|
aqua-snapshots: "${{ needs.aqua.outputs.aqua-snapshots }}"
|
||||||
|
|
||||||
aqua-native:
|
registry:
|
||||||
name: "aqua"
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
runner:
|
|
||||||
- runs-on: ubuntu-latest
|
|
||||||
arch: amd64
|
|
||||||
os: linux
|
|
||||||
static: true
|
|
||||||
needs:
|
needs:
|
||||||
- aqua
|
- aqua
|
||||||
uses: ./.github/workflows/binary.yml
|
- fluence-cli-snapshot
|
||||||
|
uses: fluencelabs/registry/.github/workflows/tests.yml@main
|
||||||
with:
|
with:
|
||||||
runs-on: ${{ matrix.runner.runs-on }}
|
aqua-snapshots: "${{ needs.aqua.outputs.aqua-snapshots }}"
|
||||||
arch: ${{ matrix.runner.arch }}
|
fluence-cli-version: "${{ needs.fluence-cli-snapshot.outputs.version }}"
|
||||||
os: ${{ matrix.runner.os }}
|
|
||||||
static: ${{ matrix.runner.static }}
|
|
||||||
|
172
.github/workflows/publish.yml
vendored
172
.github/workflows/publish.yml
vendored
@ -18,10 +18,14 @@ env:
|
|||||||
FORCE_COLOR: true
|
FORCE_COLOR: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
compile:
|
publish:
|
||||||
runs-on: builder
|
runs-on: builder
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
id-token: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@ -36,32 +40,9 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
apps: sbt
|
apps: sbt
|
||||||
|
|
||||||
- name: JS CLI build
|
- name: scala-js build
|
||||||
run: sbt cliJS/fullLinkJS
|
run: sbt ";cliJS/fullLinkJS;language-server-apiJS/fullLinkJS;aqua-apiJS/fullLinkJS"
|
||||||
|
|
||||||
- name: JS API build
|
|
||||||
run: sbt aqua-apiJS/fullLinkJS
|
|
||||||
|
|
||||||
- name: JS LSP build
|
|
||||||
run: sbt language-server-apiJS/fullLinkJS
|
|
||||||
|
|
||||||
- name: Upload aqua-cli artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-cli
|
|
||||||
path: cli/cli/.js/target/scala-*/cli-opt/main.js
|
|
||||||
|
|
||||||
- name: Upload aqua-api artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-api
|
|
||||||
path: api/aqua-api/.js/target/scala-*/aqua-api-opt/main.js
|
|
||||||
|
|
||||||
- name: Upload aqua-lsp artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-lsp
|
|
||||||
path: language-server/language-server-api/.js/target/scala-*/language-server-api-opt/main.js
|
|
||||||
|
|
||||||
aqua-cli:
|
aqua-cli:
|
||||||
name: "Publish aqua-cli"
|
name: "Publish aqua-cli"
|
||||||
@ -71,23 +52,12 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- compile
|
- compile
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
ref: ${{ inputs.tag }}
|
ref: ${{ inputs.tag }}
|
||||||
|
|
||||||
- name: Download aqua-cli artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-cli
|
|
||||||
|
|
||||||
- run: mv scala-*/*/main.js cli/cli-npm/aqua.js
|
|
||||||
|
|
||||||
- name: Import secrets
|
- name: Import secrets
|
||||||
uses: hashicorp/vault-action@v2.5.0
|
uses: hashicorp/vault-action@v2.5.0
|
||||||
with:
|
with:
|
||||||
@ -101,129 +71,24 @@ jobs:
|
|||||||
secrets: |
|
secrets: |
|
||||||
kv/npmjs/fluencebot token | NODE_AUTH_TOKEN
|
kv/npmjs/fluencebot token | NODE_AUTH_TOKEN
|
||||||
|
|
||||||
- name: Setup node
|
- name: Setup pnpm
|
||||||
|
uses: pnpm/action-setup@v2.2.4
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
|
||||||
|
- name: Setup node with self-hosted npm registry
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: "16"
|
node-version: "16"
|
||||||
registry-url: "https://registry.npmjs.org"
|
registry-url: "https://registry.npmjs.org"
|
||||||
cache-dependency-path: "cli/cli-npm/package-lock.json"
|
cache: "pnpm"
|
||||||
cache: "npm"
|
|
||||||
|
|
||||||
- run: npm i
|
- run: pnpm -r i
|
||||||
working-directory: cli/cli-npm
|
|
||||||
|
|
||||||
- run: npm run build
|
- run: pnpm -r build
|
||||||
working-directory: cli/cli-npm
|
|
||||||
|
|
||||||
- name: Publish to NPM registry
|
- name: Publish to NPM registry
|
||||||
run: npm publish --access public --tag unstable
|
run: pnpm publish --access public --tag unstable
|
||||||
working-directory: cli/cli-npm
|
|
||||||
|
|
||||||
aqua-api:
|
|
||||||
name: "Publish aqua-api"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 60
|
|
||||||
|
|
||||||
needs:
|
|
||||||
- compile
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: ${{ inputs.tag }}
|
|
||||||
|
|
||||||
- name: Download aqua-api artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-api
|
|
||||||
|
|
||||||
- run: mv scala-*/*/main.js api/aqua-api-npm/aqua-api.js
|
|
||||||
|
|
||||||
- name: Import secrets
|
|
||||||
uses: hashicorp/vault-action@v2.5.0
|
|
||||||
with:
|
|
||||||
url: https://vault.fluence.dev
|
|
||||||
path: jwt/github
|
|
||||||
role: ci
|
|
||||||
method: jwt
|
|
||||||
jwtGithubAudience: "https://github.com/fluencelabs"
|
|
||||||
jwtTtl: 300
|
|
||||||
exportToken: false
|
|
||||||
secrets: |
|
|
||||||
kv/npmjs/fluencebot token | NODE_AUTH_TOKEN
|
|
||||||
|
|
||||||
- name: Setup node
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: "16"
|
|
||||||
registry-url: "https://registry.npmjs.org"
|
|
||||||
cache-dependency-path: "api/aqua-api-npm/package-lock.json"
|
|
||||||
cache: "npm"
|
|
||||||
|
|
||||||
- run: npm i
|
|
||||||
working-directory: api/aqua-api-npm
|
|
||||||
|
|
||||||
- name: Publish to NPM registry
|
|
||||||
run: npm publish --access public --tag unstable
|
|
||||||
working-directory: api/aqua-api-npm
|
|
||||||
|
|
||||||
aqua-lsp:
|
|
||||||
name: "Publish aqua-lsp"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 60
|
|
||||||
|
|
||||||
needs:
|
|
||||||
- compile
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: ${{ inputs.tag }}
|
|
||||||
|
|
||||||
- name: Download aqua-lsp artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-lsp
|
|
||||||
|
|
||||||
- run: mv scala-*/*/main.js language-server/language-server-npm/aqua-lsp-api.js
|
|
||||||
|
|
||||||
- name: Import secrets
|
|
||||||
uses: hashicorp/vault-action@v2.5.0
|
|
||||||
with:
|
|
||||||
url: https://vault.fluence.dev
|
|
||||||
path: jwt/github
|
|
||||||
role: ci
|
|
||||||
method: jwt
|
|
||||||
jwtGithubAudience: "https://github.com/fluencelabs"
|
|
||||||
jwtTtl: 300
|
|
||||||
exportToken: false
|
|
||||||
secrets: |
|
|
||||||
kv/npmjs/fluencebot token | NODE_AUTH_TOKEN
|
|
||||||
|
|
||||||
- name: Setup node
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: "16"
|
|
||||||
registry-url: "https://registry.npmjs.org"
|
|
||||||
cache-dependency-path: "language-server/language-server-npm/package-lock.json"
|
|
||||||
cache: "npm"
|
|
||||||
|
|
||||||
- run: npm i
|
|
||||||
working-directory: language-server/language-server-npm
|
|
||||||
|
|
||||||
- name: Publish to NPM registry
|
|
||||||
run: npm publish --access public --tag unstable
|
|
||||||
working-directory: language-server/language-server-npm
|
|
||||||
|
|
||||||
aqua-native:
|
aqua-native:
|
||||||
name: "Publish aqua-native"
|
name: "Publish aqua-native"
|
||||||
@ -238,8 +103,7 @@ jobs:
|
|||||||
arch: amd64
|
arch: amd64
|
||||||
os: macos
|
os: macos
|
||||||
static: false
|
static: false
|
||||||
needs:
|
|
||||||
- compile
|
|
||||||
uses: ./.github/workflows/binary.yml
|
uses: ./.github/workflows/binary.yml
|
||||||
with:
|
with:
|
||||||
runs-on: ${{ matrix.runner.runs-on }}
|
runs-on: ${{ matrix.runner.runs-on }}
|
||||||
|
23
.github/workflows/release.yml
vendored
23
.github/workflows/release.yml
vendored
@ -61,18 +61,33 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
sed -i 's/aquaVersion =.*/aquaVersion = "${{ steps.version.outputs.version }}"/g' build.sbt
|
sed -i 's/aquaVersion =.*/aquaVersion = "${{ steps.version.outputs.version }}"/g' build.sbt
|
||||||
|
|
||||||
|
- name: Setup pnpm
|
||||||
|
uses: pnpm/action-setup@v2.2.4
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
|
||||||
|
- name: Setup node with self-hosted npm registry
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: "16"
|
||||||
|
registry-url: "https://registry.npmjs.org"
|
||||||
|
cache: "pnpm"
|
||||||
|
|
||||||
- name: Set cli version
|
- name: Set cli version
|
||||||
run: npm version ${{ steps.version.outputs.version }}
|
run: pnpm version ${{ steps.version.outputs.version }}
|
||||||
working-directory: cli/cli-npm
|
working-directory: cli/cli-npm
|
||||||
|
|
||||||
- name: Set api version
|
- name: Set api version
|
||||||
run: npm version ${{ steps.version.outputs.version }}
|
run: pnpm version ${{ steps.version.outputs.version }}
|
||||||
working-directory: api/aqua-api-npm
|
working-directory: api/api-npm
|
||||||
|
|
||||||
- name: Set lsp version
|
- name: Set lsp version
|
||||||
run: npm version ${{ steps.version.outputs.version }}
|
run: pnpm version ${{ steps.version.outputs.version }}
|
||||||
working-directory: language-server/language-server-npm
|
working-directory: language-server/language-server-npm
|
||||||
|
|
||||||
|
- name: Regenerate lock
|
||||||
|
run: pnpm -r i
|
||||||
|
|
||||||
- name: Commit version bump
|
- name: Commit version bump
|
||||||
uses: stefanzweifel/git-auto-commit-action@v4
|
uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
with:
|
with:
|
||||||
|
6
.github/workflows/run-tests.yml
vendored
6
.github/workflows/run-tests.yml
vendored
@ -21,6 +21,12 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
sbt-tests:
|
||||||
|
name: "aqua"
|
||||||
|
uses: ./.github/workflows/sbt-tests.yml
|
||||||
|
with:
|
||||||
|
ref: ${{ github.ref }}
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
name: "aqua"
|
name: "aqua"
|
||||||
uses: ./.github/workflows/tests.yml
|
uses: ./.github/workflows/tests.yml
|
||||||
|
32
.github/workflows/sbt-tests.yml
vendored
Normal file
32
.github/workflows/sbt-tests.yml
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
name: Run sbt tests with workflow_call
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
ref:
|
||||||
|
description: "git ref to checkout to"
|
||||||
|
type: string
|
||||||
|
default: "main"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
tests:
|
||||||
|
name: "Run sbt tests"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: fluencelabs/aqua
|
||||||
|
ref: ${{ inputs.ref }}
|
||||||
|
|
||||||
|
- name: Cache Scala
|
||||||
|
uses: coursier/cache-action@v6
|
||||||
|
|
||||||
|
- name: Setup Scala
|
||||||
|
uses: coursier/setup-action@v1
|
||||||
|
with:
|
||||||
|
apps: sbt
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: sbt test
|
243
.github/workflows/snapshot.yml
vendored
243
.github/workflows/snapshot.yml
vendored
@ -3,34 +3,32 @@ name: Publish snapshots
|
|||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
fluence-js-version:
|
|
||||||
description: "@fluencejs/fluence version"
|
|
||||||
type: string
|
|
||||||
default: "null"
|
|
||||||
ref:
|
ref:
|
||||||
description: "git ref to checkout to"
|
description: "git ref to checkout to"
|
||||||
type: string
|
type: string
|
||||||
default: "main"
|
default: "main"
|
||||||
outputs:
|
outputs:
|
||||||
aqua-version:
|
aqua-snapshots:
|
||||||
description: "@fluencelabs/aqua version"
|
description: "aqua snapshots"
|
||||||
value: ${{ jobs.aqua-cli.outputs.version }}
|
value: ${{ jobs.publish.outputs.snapshots }}
|
||||||
aqua-lsp-version:
|
|
||||||
description: "@fluencelabs/aqua-language-server-api version"
|
|
||||||
value: ${{ jobs.aqua-lsp.outputs.version }}
|
|
||||||
aqua-api-version:
|
|
||||||
description: "@fluencelabs/aqua-api version"
|
|
||||||
value: ${{ jobs.aqua-api.outputs.version }}
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
FORCE_COLOR: true
|
FORCE_COLOR: true
|
||||||
|
CI: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
compile:
|
publish:
|
||||||
name: "Compile"
|
name: "Publish snapshots"
|
||||||
runs-on: builder
|
runs-on: builder
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
snapshots: "${{ steps.snapshot.outputs.snapshots }}"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@ -50,66 +48,10 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
apps: sbt
|
apps: sbt
|
||||||
|
|
||||||
- name: JS CLI build
|
- name: scala-js build
|
||||||
env:
|
env:
|
||||||
SNAPSHOT: ${{ steps.version.outputs.id }}
|
SNAPSHOT: ${{ steps.version.outputs.id }}
|
||||||
run: sbt cliJS/fastOptJS
|
run: sbt ";cliJS/fastOptJS;language-server-apiJS/fastOptJS;aqua-apiJS/fastOptJS"
|
||||||
|
|
||||||
- name: JS LSP build
|
|
||||||
env:
|
|
||||||
SNAPSHOT: ${{ steps.version.outputs.id }}
|
|
||||||
run: sbt language-server-apiJS/fastOptJS
|
|
||||||
|
|
||||||
- name: JS API build
|
|
||||||
env:
|
|
||||||
SNAPSHOT: ${{ steps.version.outputs.id }}
|
|
||||||
run: sbt aqua-apiJS/fastOptJS
|
|
||||||
|
|
||||||
- name: Upload aqua-cli artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-cli
|
|
||||||
path: cli/cli/.js/target/scala-*/cli-fastopt.js
|
|
||||||
|
|
||||||
- name: Upload aqua-api artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-api
|
|
||||||
path: api/aqua-api/.js/target/scala-*/aqua-api-fastopt.js
|
|
||||||
|
|
||||||
- name: Upload aqua-lsp artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-lsp
|
|
||||||
path: language-server/language-server-api/.js/target/scala-*/language-server-api-fastopt.js
|
|
||||||
|
|
||||||
aqua-cli:
|
|
||||||
name: "Publish aqua-cli"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 60
|
|
||||||
|
|
||||||
needs: compile
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
version: "${{ steps.snapshot.outputs.version }}"
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
repository: fluencelabs/aqua
|
|
||||||
ref: ${{ inputs.ref }}
|
|
||||||
|
|
||||||
- name: Download aqua-cli artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-cli
|
|
||||||
|
|
||||||
- run: mv scala-*/cli-fastopt.js cli/cli-npm/aqua.js
|
|
||||||
|
|
||||||
- name: Import secrets
|
- name: Import secrets
|
||||||
uses: hashicorp/vault-action@v2.5.0
|
uses: hashicorp/vault-action@v2.5.0
|
||||||
@ -124,163 +66,28 @@ jobs:
|
|||||||
secrets: |
|
secrets: |
|
||||||
kv/npm-registry/basicauth/ci token | NODE_AUTH_TOKEN
|
kv/npm-registry/basicauth/ci token | NODE_AUTH_TOKEN
|
||||||
|
|
||||||
- name: Setup node with self-hosted npm registry
|
- name: Setup pnpm
|
||||||
uses: actions/setup-node@v3
|
uses: pnpm/action-setup@v2.2.4
|
||||||
with:
|
with:
|
||||||
node-version: "16"
|
version: 8
|
||||||
registry-url: "https://npm.fluence.dev"
|
|
||||||
cache-dependency-path: "cli/cli-npm/package-lock.json"
|
|
||||||
cache: "npm"
|
|
||||||
|
|
||||||
- run: npm i
|
|
||||||
working-directory: cli/cli-npm
|
|
||||||
|
|
||||||
- name: Set fluence-js version from branch
|
|
||||||
if: inputs.fluence-js-version != 'null'
|
|
||||||
working-directory: cli/cli-npm
|
|
||||||
run: npm i --save -E @fluencelabs/fluence@${{ inputs.fluence-js-version }}
|
|
||||||
|
|
||||||
- run: npm run build
|
|
||||||
working-directory: cli/cli-npm
|
|
||||||
|
|
||||||
- name: Generate snapshot version
|
|
||||||
id: version
|
|
||||||
uses: fluencelabs/github-actions/generate-snapshot-id@main
|
|
||||||
|
|
||||||
- name: Publish snapshot
|
|
||||||
id: snapshot
|
|
||||||
uses: fluencelabs/github-actions/npm-publish-snapshot@main
|
|
||||||
with:
|
|
||||||
working-directory: cli/cli-npm
|
|
||||||
id: ${{ steps.version.outputs.id }}
|
|
||||||
|
|
||||||
aqua-api:
|
|
||||||
name: "Publish aqua-api"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 60
|
|
||||||
|
|
||||||
needs: compile
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
version: "${{ steps.snapshot.outputs.version }}"
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
repository: fluencelabs/aqua
|
|
||||||
ref: ${{ inputs.ref }}
|
|
||||||
|
|
||||||
- name: Download aqua-api artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-api
|
|
||||||
|
|
||||||
- run: mv scala-*/aqua-api-fastopt.js api/aqua-api-npm/aqua-api.js
|
|
||||||
|
|
||||||
- name: Import secrets
|
|
||||||
uses: hashicorp/vault-action@v2.5.0
|
|
||||||
with:
|
|
||||||
url: https://vault.fluence.dev
|
|
||||||
path: jwt/github
|
|
||||||
role: ci
|
|
||||||
method: jwt
|
|
||||||
jwtGithubAudience: "https://github.com/fluencelabs"
|
|
||||||
jwtTtl: 300
|
|
||||||
exportToken: false
|
|
||||||
secrets: |
|
|
||||||
kv/npm-registry/basicauth/ci token | NODE_AUTH_TOKEN
|
|
||||||
|
|
||||||
- name: Setup node with self-hosted npm registry
|
- name: Setup node with self-hosted npm registry
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: "16"
|
node-version: "16"
|
||||||
registry-url: "https://npm.fluence.dev"
|
registry-url: "https://npm.fluence.dev"
|
||||||
cache-dependency-path: "api/aqua-api-npm/package-lock.json"
|
cache: "pnpm"
|
||||||
cache: "npm"
|
|
||||||
|
|
||||||
- run: npm i
|
- run: pnpm -r i
|
||||||
working-directory: api/aqua-api-npm
|
|
||||||
|
|
||||||
- name: Set fluence-js version from branch
|
- name: Set package version
|
||||||
if: inputs.fluence-js-version != 'null'
|
run: node ci.cjs bump-version ${{ steps.version.outputs.id }}
|
||||||
working-directory: cli/cli-npm
|
|
||||||
run: npm i --save-dev -E @fluencelabs/fluence@${{ inputs.fluence-js-version }}
|
|
||||||
|
|
||||||
- name: Generate snapshot version
|
- run: pnpm -r build
|
||||||
id: version
|
|
||||||
uses: fluencelabs/github-actions/generate-snapshot-id@main
|
|
||||||
|
|
||||||
- name: Publish snapshot
|
- name: Publish snapshot
|
||||||
id: snapshot
|
id: snapshot
|
||||||
uses: fluencelabs/github-actions/npm-publish-snapshot@main
|
uses: fluencelabs/github-actions/pnpm-publish-snapshot@main
|
||||||
with:
|
with:
|
||||||
working-directory: api/aqua-api-npm
|
|
||||||
id: ${{ steps.version.outputs.id }}
|
|
||||||
|
|
||||||
aqua-lsp:
|
|
||||||
name: "Publish aqua-lsp"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 60
|
|
||||||
|
|
||||||
needs: compile
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
version: "${{ steps.snapshot.outputs.version }}"
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
repository: fluencelabs/aqua
|
|
||||||
ref: ${{ inputs.ref }}
|
|
||||||
|
|
||||||
- name: Download aqua-lsp artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: aqua-lsp
|
|
||||||
|
|
||||||
- run: mv scala-*/language-server-api-fastopt.js language-server/language-server-npm/aqua-lsp-api.js
|
|
||||||
|
|
||||||
- name: Import secrets
|
|
||||||
uses: hashicorp/vault-action@v2.5.0
|
|
||||||
with:
|
|
||||||
url: https://vault.fluence.dev
|
|
||||||
path: jwt/github
|
|
||||||
role: ci
|
|
||||||
method: jwt
|
|
||||||
jwtGithubAudience: "https://github.com/fluencelabs"
|
|
||||||
jwtTtl: 300
|
|
||||||
exportToken: false
|
|
||||||
secrets: |
|
|
||||||
kv/npm-registry/basicauth/ci token | NODE_AUTH_TOKEN
|
|
||||||
|
|
||||||
- name: Setup node with self-hosted npm registry
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: "16"
|
|
||||||
registry-url: "https://npm.fluence.dev"
|
|
||||||
cache-dependency-path: "language-server/language-server-npm/package-lock.json"
|
|
||||||
cache: "npm"
|
|
||||||
|
|
||||||
- run: npm i
|
|
||||||
working-directory: language-server/language-server-npm
|
|
||||||
|
|
||||||
- name: Generate snapshot version
|
|
||||||
id: version
|
|
||||||
uses: fluencelabs/github-actions/generate-snapshot-id@main
|
|
||||||
|
|
||||||
- name: Publish snapshot
|
|
||||||
id: snapshot
|
|
||||||
uses: fluencelabs/github-actions/npm-publish-snapshot@main
|
|
||||||
with:
|
|
||||||
working-directory: language-server/language-server-npm
|
|
||||||
id: ${{ steps.version.outputs.id }}
|
id: ${{ steps.version.outputs.id }}
|
||||||
|
set-version: false
|
||||||
|
105
.github/workflows/tests.yml
vendored
105
.github/workflows/tests.yml
vendored
@ -6,20 +6,73 @@ on:
|
|||||||
ref:
|
ref:
|
||||||
description: "git ref to checkout to"
|
description: "git ref to checkout to"
|
||||||
type: string
|
type: string
|
||||||
default: "main"
|
default: "master"
|
||||||
|
fluence-env:
|
||||||
|
description: "Fluence enviroment to run tests agains"
|
||||||
|
type: string
|
||||||
|
default: "local"
|
||||||
|
rust-peer-image:
|
||||||
|
description: "rust-peer image tag"
|
||||||
|
type: string
|
||||||
|
default: "fluencelabs/rust-peer:minimal"
|
||||||
|
js-client-snapshots:
|
||||||
|
description: "js-client snapshots"
|
||||||
|
type: string
|
||||||
|
default: "null"
|
||||||
|
|
||||||
|
env:
|
||||||
|
FORCE_COLOR: true
|
||||||
|
RUST_PEER_IMAGE: "${{ inputs.rust-peer-image }}"
|
||||||
|
FLUENCE_ENV: "${{ inputs.fluence-env }}"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tests:
|
aqua:
|
||||||
name: "Run sbt tests"
|
name: "Run tests"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 60
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
id-token: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Import secrets
|
||||||
|
uses: hashicorp/vault-action@v2.6.0
|
||||||
|
with:
|
||||||
|
url: https://vault.fluence.dev
|
||||||
|
path: jwt/github
|
||||||
|
role: ci
|
||||||
|
method: jwt
|
||||||
|
jwtGithubAudience: "https://github.com/fluencelabs"
|
||||||
|
jwtTtl: 300
|
||||||
|
secrets: |
|
||||||
|
kv/docker-registry/basicauth/ci username | DOCKER_USERNAME ;
|
||||||
|
kv/docker-registry/basicauth/ci password | DOCKER_PASSWORD ;
|
||||||
|
kv/npm-registry/basicauth/ci token | NODE_AUTH_TOKEN;
|
||||||
|
kv/slack/node-alerts webhook | INCOMING_WEBHOOK_URL
|
||||||
|
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: docker.fluence.dev
|
||||||
|
username: ${{ env.DOCKER_USERNAME }}
|
||||||
|
password: ${{ env.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: fluencelabs/aqua
|
repository: fluencelabs/aqua
|
||||||
ref: ${{ inputs.ref }}
|
ref: ${{ inputs.ref }}
|
||||||
|
|
||||||
|
- name: Pull rust-peer image
|
||||||
|
run: docker pull $RUST_PEER_IMAGE
|
||||||
|
|
||||||
|
- name: Run rust-peer
|
||||||
|
uses: isbang/compose-action@v1.4.1
|
||||||
|
with:
|
||||||
|
compose-file: ".github/e2e/docker-compose.yml"
|
||||||
|
down-flags: "--volumes"
|
||||||
|
|
||||||
- name: Cache Scala
|
- name: Cache Scala
|
||||||
uses: coursier/cache-action@v6
|
uses: coursier/cache-action@v6
|
||||||
|
|
||||||
@ -28,5 +81,45 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
apps: sbt
|
apps: sbt
|
||||||
|
|
||||||
- name: Run tests
|
- name: cli-js build
|
||||||
run: sbt test
|
run: sbt "cliJS/fastOptJS"
|
||||||
|
|
||||||
|
- name: Setup pnpm
|
||||||
|
uses: pnpm/action-setup@v2.2.4
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
|
||||||
|
- name: Setup node with self-hosted registry
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: "16"
|
||||||
|
registry-url: "https://npm.fluence.dev"
|
||||||
|
cache: "pnpm"
|
||||||
|
|
||||||
|
- run: pnpm install
|
||||||
|
working-directory: integration-tests
|
||||||
|
|
||||||
|
- name: Override dependencies
|
||||||
|
if: inputs.js-client-snapshots != 'null'
|
||||||
|
uses: fluencelabs/github-actions/pnpm-set-dependency@main
|
||||||
|
with:
|
||||||
|
dependencies: |
|
||||||
|
{
|
||||||
|
"@fluencelabs/js-client.node": "${{ fromJson(inputs.js-client-snapshots)['js-client.node'] }}",
|
||||||
|
"@fluencelabs/js-client.api": "${{ fromJson(inputs.js-client-snapshots)['js-client.api'] }}"
|
||||||
|
}
|
||||||
|
|
||||||
|
- name: Build cli
|
||||||
|
run: pnpm run build
|
||||||
|
working-directory: cli/cli-npm
|
||||||
|
|
||||||
|
- name: Compule aqua
|
||||||
|
run: pnpm run compile-aqua
|
||||||
|
working-directory: integration-tests
|
||||||
|
|
||||||
|
- run: pnpm run test
|
||||||
|
working-directory: integration-tests
|
||||||
|
|
||||||
|
- name: Dump rust-peer logs
|
||||||
|
if: always()
|
||||||
|
uses: jwalton/gh-docker-logs@v2
|
||||||
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -9,5 +9,11 @@ project/target
|
|||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
npm/aqua.js
|
cli/cli-npm/aqua.j*
|
||||||
|
language-server/language-server-npm/aqua-lsp-api.j*
|
||||||
|
api/api-npm/aqua-api.j*
|
||||||
|
|
||||||
|
integration-tests/src/compiled/*
|
||||||
|
|
||||||
|
**/dist
|
||||||
**/node_modules
|
**/node_modules
|
||||||
|
@ -28,9 +28,9 @@ Comprehensive documentation and usage examples as well as a number of videos can
|
|||||||
## Repository Structure
|
## Repository Structure
|
||||||
|
|
||||||
- [**api**](./api) - Aqua API for JS
|
- [**api**](./api) - Aqua API for JS
|
||||||
- [aqua-api](./api/aqua-api) - Scala sources
|
- [api](./api/api) - Scala sources
|
||||||
- [aqua-api-npm](./api/aqua-api-npm) - JS project
|
- [api-npm](./api/api-npm) - JS project
|
||||||
- [aqua-api-example](./api/aqua-api-example) - usage example
|
- [api-example](./api/api-example) - usage example
|
||||||
- [**aqua-run**](./aqua-run) - Aqua API to run functions
|
- [**aqua-run**](./aqua-run) - Aqua API to run functions
|
||||||
- [**backend**](./backend) - compilation backend interface
|
- [**backend**](./backend) - compilation backend interface
|
||||||
- [backend/air](./backend/air) - generates AIR code from the middle-end model
|
- [backend/air](./backend/air) - generates AIR code from the middle-end model
|
||||||
|
3
api/api-npm/README.md
Normal file
3
api/api-npm/README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Aqua API
|
||||||
|
|
||||||
|
[Documentation](https://fluence.dev/docs/aqua-book/aqua-js-api)
|
@ -8,10 +8,6 @@
|
|||||||
"aqua-api.d.ts",
|
"aqua-api.d.ts",
|
||||||
"meta-utils.js"
|
"meta-utils.js"
|
||||||
],
|
],
|
||||||
"scripts": {
|
|
||||||
"move:scalajs": "cp ../aqua-api/.js/target/scala-3.3.0/aqua-api-opt/main.js ./aqua-api.js",
|
|
||||||
"move:fast": "cp ../aqua-api/.js/target/scala-3.3.0/aqua-api-fastopt/main.js ./aqua-api.js"
|
|
||||||
},
|
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/fluencelabs/aqua.git"
|
"url": "git+https://github.com/fluencelabs/aqua.git"
|
13002
api/aqua-api-npm/package-lock.json
generated
13002
api/aqua-api-npm/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
|||||||
# Aqua API
|
|
||||||
|
|
||||||
[Documentation](https://fluence.dev/docs/aqua-book/aqua-js-api)
|
|
@ -72,6 +72,8 @@ lazy val cli = crossProject(JSPlatform, JVMPlatform)
|
|||||||
|
|
||||||
lazy val cliJS = cli.js
|
lazy val cliJS = cli.js
|
||||||
.settings(
|
.settings(
|
||||||
|
Compile / fastOptJS / artifactPath := baseDirectory.value / "../../cli-npm" / "aqua.js",
|
||||||
|
Compile / fullOptJS / artifactPath := baseDirectory.value / "../../cli-npm" / "aqua.js",
|
||||||
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.ESModule)),
|
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.ESModule)),
|
||||||
scalaJSUseMainModuleInitializer := true
|
scalaJSUseMainModuleInitializer := true
|
||||||
)
|
)
|
||||||
@ -122,6 +124,8 @@ lazy val `language-server-api` = crossProject(JSPlatform, JVMPlatform)
|
|||||||
|
|
||||||
lazy val `language-server-apiJS` = `language-server-api`.js
|
lazy val `language-server-apiJS` = `language-server-api`.js
|
||||||
.settings(
|
.settings(
|
||||||
|
Compile / fastOptJS / artifactPath := baseDirectory.value / "../../language-server-npm" / "aqua-lsp-api.js",
|
||||||
|
Compile / fullOptJS / artifactPath := baseDirectory.value / "../../language-server-npm" / "aqua-lsp-api.js",
|
||||||
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule)),
|
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule)),
|
||||||
scalaJSUseMainModuleInitializer := true
|
scalaJSUseMainModuleInitializer := true
|
||||||
)
|
)
|
||||||
@ -143,12 +147,14 @@ lazy val `js-imports` = project
|
|||||||
lazy val `aqua-api` = crossProject(JSPlatform, JVMPlatform)
|
lazy val `aqua-api` = crossProject(JSPlatform, JVMPlatform)
|
||||||
.withoutSuffixFor(JVMPlatform)
|
.withoutSuffixFor(JVMPlatform)
|
||||||
.crossType(CrossType.Pure)
|
.crossType(CrossType.Pure)
|
||||||
.in(file("api/aqua-api"))
|
.in(file("api/api"))
|
||||||
.settings(commons: _*)
|
.settings(commons: _*)
|
||||||
.dependsOn(`aqua-run`, `backend-api`)
|
.dependsOn(`aqua-run`, `backend-api`)
|
||||||
|
|
||||||
lazy val `aqua-apiJS` = `aqua-api`.js
|
lazy val `aqua-apiJS` = `aqua-api`.js
|
||||||
.settings(
|
.settings(
|
||||||
|
Compile / fastOptJS / artifactPath := baseDirectory.value / "../../api-npm" / "aqua-api.js",
|
||||||
|
Compile / fullOptJS / artifactPath := baseDirectory.value / "../../api-npm" / "aqua-api.js",
|
||||||
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule)),
|
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule)),
|
||||||
scalaJSUseMainModuleInitializer := true,
|
scalaJSUseMainModuleInitializer := true,
|
||||||
Test / test := {}
|
Test / test := {}
|
||||||
|
172
ci.cjs
Normal file
172
ci.cjs
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
#! /usr/bin/env node
|
||||||
|
|
||||||
|
const fs = require("fs").promises;
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
|
function printUsage() {
|
||||||
|
console.log(
|
||||||
|
`Usage: "ci check-consistency" or "ci bump-version %postfix%" or "ci get-version"`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
let postfix;
|
||||||
|
const mode = process.argv[2];
|
||||||
|
|
||||||
|
function validateArgs() {
|
||||||
|
switch (mode) {
|
||||||
|
case "get-version":
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case "bump-version":
|
||||||
|
postfix = process.argv[3];
|
||||||
|
if (!postfix) {
|
||||||
|
printUsage();
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case "":
|
||||||
|
case undefined:
|
||||||
|
case "check-consistency":
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const PATHS_TO_PACKAGES = [
|
||||||
|
"./cli/cli-npm",
|
||||||
|
"./api/api-npm",
|
||||||
|
"./language-server/language-server-npm",
|
||||||
|
"./integration-tests"
|
||||||
|
];
|
||||||
|
|
||||||
|
async function getPackageJsonsRecursive(currentPath) {
|
||||||
|
return (
|
||||||
|
await Promise.all(
|
||||||
|
(await fs.readdir(currentPath, { withFileTypes: true }))
|
||||||
|
.filter(
|
||||||
|
(file) =>
|
||||||
|
file.name !== "node_modules" && file.name !== "@tests" &&
|
||||||
|
(file.isDirectory() || file.name === "package.json")
|
||||||
|
)
|
||||||
|
.map((file) =>
|
||||||
|
file.isDirectory()
|
||||||
|
? getPackageJsonsRecursive(
|
||||||
|
path.join(currentPath, file.name)
|
||||||
|
)
|
||||||
|
: Promise.resolve([
|
||||||
|
path.join(process.cwd(), currentPath, file.name),
|
||||||
|
])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
).flat();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getVersion(file) {
|
||||||
|
const content = await fs.readFile(file);
|
||||||
|
const json = JSON.parse(content);
|
||||||
|
return [json.name, json.version];
|
||||||
|
}
|
||||||
|
|
||||||
|
function processDep(obj, name, fn) {
|
||||||
|
if (!obj) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!obj[name]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn(obj, obj[name]);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getVersionsMap(allPackageJsons) {
|
||||||
|
return new Map(await Promise.all(allPackageJsons.map(getVersion)));
|
||||||
|
}
|
||||||
|
|
||||||
|
function getVersionForPackageOrThrow(versionsMap, packageName) {
|
||||||
|
const version = versionsMap.get(packageName);
|
||||||
|
if (!version) {
|
||||||
|
console.log("Failed to get version for package: ", packageName);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function checkConsistency(file, versionsMap) {
|
||||||
|
console.log("Checking: ", file);
|
||||||
|
const content = await fs.readFile(file);
|
||||||
|
const json = JSON.parse(content);
|
||||||
|
|
||||||
|
for (const [name, versionInDep] of versionsMap) {
|
||||||
|
const check = (x, version) => {
|
||||||
|
if (version.includes("*")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (versionInDep !== version) {
|
||||||
|
console.log(
|
||||||
|
`Error, versions don't match: ${name}:${version} !== ${versionInDep}`,
|
||||||
|
file
|
||||||
|
);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
processDep(json.dependencies, name, check);
|
||||||
|
processDep(json.devDependencies, name, check);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function bumpVersions(file, versionsMap) {
|
||||||
|
console.log("Updating: ", file);
|
||||||
|
const content = await fs.readFile(file);
|
||||||
|
const json = JSON.parse(content);
|
||||||
|
|
||||||
|
for (const [name, version] of versionsMap) {
|
||||||
|
const update = (x) => (x[name] = `${version}-${postfix}`);
|
||||||
|
processDep(json.dependencies, name, update);
|
||||||
|
processDep(json.devDependencies, name, update);
|
||||||
|
}
|
||||||
|
|
||||||
|
const version = getVersionForPackageOrThrow(versionsMap, json.name);
|
||||||
|
json.version = `${version}-${postfix}`;
|
||||||
|
|
||||||
|
const newContent = JSON.stringify(json, undefined, 4) + "\n";
|
||||||
|
await fs.writeFile(file, newContent);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function processPackageJsons(allPackageJsons, versionsMap, fn) {
|
||||||
|
await Promise.all(allPackageJsons.map((x) => fn(x, versionsMap)));
|
||||||
|
}
|
||||||
|
|
||||||
|
async function run() {
|
||||||
|
if (!validateArgs()) {
|
||||||
|
printUsage();
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
const packageJsons = (
|
||||||
|
await Promise.all(PATHS_TO_PACKAGES.map(getPackageJsonsRecursive))
|
||||||
|
).flat();
|
||||||
|
const versionsMap = await getVersionsMap(packageJsons);
|
||||||
|
|
||||||
|
if (mode === "get-version") {
|
||||||
|
const fjs = versionsMap.get("@fluencelabs/fluence");
|
||||||
|
console.log(fjs);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("Checking versions consistency...");
|
||||||
|
await processPackageJsons(packageJsons, versionsMap, checkConsistency);
|
||||||
|
console.log("Versions are consistent");
|
||||||
|
|
||||||
|
if (mode === "bump-version") {
|
||||||
|
console.log("Adding postfix: ", postfix);
|
||||||
|
await processPackageJsons(packageJsons, versionsMap, bumpVersions);
|
||||||
|
console.log("Done");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
run();
|
@ -8,7 +8,9 @@ ADDR='/dns4/kras-04.fluence.dev/tcp/19001/wss/p2p/12D3KooWFEwNWcHqi9rtsmDhsYcDbR
|
|||||||
|
|
||||||
if [ -z "$IMPORT" ]
|
if [ -z "$IMPORT" ]
|
||||||
then
|
then
|
||||||
npm run from:scalajs -- run -f "$FUNC" -i "$INPUT" --data-path "$DATAPATH" --addr "$ADDR"
|
npm run build
|
||||||
|
npm run -- run -f "$FUNC" -i "$INPUT" --data-path "$DATAPATH" --addr "$ADDR"
|
||||||
else
|
else
|
||||||
npm run from:scalajs -- run -f "$FUNC" -i "$INPUT" --data-path "$DATAPATH" --addr "$ADDR" -m "$IMPORT"
|
npm run build
|
||||||
|
npm run run -- run -f "$FUNC" -i "$INPUT" --data-path "$DATAPATH" --addr "$ADDR" -m "$IMPORT"
|
||||||
fi
|
fi
|
||||||
|
13309
cli/cli-npm/package-lock.json
generated
13309
cli/cli-npm/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -17,7 +17,6 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"run": "node index.js",
|
"run": "node index.js",
|
||||||
"from:scalajs": "cp ../cli/.js/target/scala-3.2.2/cli-opt/main.js ./aqua.js && npm run build && npm run run -- $@",
|
|
||||||
"build": "tsc"
|
"build": "tsc"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -25,7 +24,8 @@
|
|||||||
"@fluencelabs/aqua-lib": "0.6.0",
|
"@fluencelabs/aqua-lib": "0.6.0",
|
||||||
"@fluencelabs/fluence": "0.28.0",
|
"@fluencelabs/fluence": "0.28.0",
|
||||||
"@fluencelabs/fluence-network-environment": "1.0.14",
|
"@fluencelabs/fluence-network-environment": "1.0.14",
|
||||||
"ipfs-http-client": "50.1.2"
|
"ipfs-http-client": "50.1.2",
|
||||||
|
"multiaddr": "^10.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"ts-node": "10.9.1",
|
"ts-node": "10.9.1",
|
||||||
|
@ -1,49 +1,50 @@
|
|||||||
{
|
{
|
||||||
"name": "aquamarine-template",
|
"name": "aquamarine-template",
|
||||||
"version": "0.3.9",
|
"private": true,
|
||||||
"keywords": [
|
"version": "0.3.9",
|
||||||
"typescript",
|
"keywords": [
|
||||||
"template"
|
"typescript",
|
||||||
],
|
"template"
|
||||||
"type": "module",
|
],
|
||||||
"author": "FluenceLabs (https://github.com/fluencelabs)",
|
"type": "module",
|
||||||
"license": "MIT",
|
"author": "FluenceLabs (https://github.com/fluencelabs)",
|
||||||
"main": "dist/index.js",
|
"license": "MIT",
|
||||||
"types": "dist/index.d.ts",
|
"main": "dist/index.js",
|
||||||
"files": [
|
"types": "dist/index.d.ts",
|
||||||
"dist/",
|
"files": [
|
||||||
"src/"
|
"dist/",
|
||||||
],
|
"src/"
|
||||||
"scripts": {
|
],
|
||||||
"build": "tsc",
|
"scripts": {
|
||||||
"test": "NODE_OPTIONS=--experimental-vm-modules npx jest --detectOpenHandles",
|
"build": "tsc & npm run compile-aqua",
|
||||||
"examples": "jest",
|
"test": "NODE_OPTIONS=--experimental-vm-modules npx jest --detectOpenHandles",
|
||||||
"pubsub": "node -r ts-node/register src/pubsub.ts",
|
"examples": "jest",
|
||||||
"exec": "npm run compile-aqua && npm run prettify-compiled && node -r ts-node/register src/index.ts",
|
"pubsub": "node -r ts-node/register src/pubsub.ts",
|
||||||
"run": "node -r ts-node/register src/index.ts",
|
"exec": "npm run compile-aqua && npm run prettify-compiled && node -r ts-node/register src/index.ts",
|
||||||
"compile-aqua": "aqua -i ./aqua/ -o ./src/compiled",
|
"run": "node -r ts-node/register src/index.ts",
|
||||||
"compile-aqua:air": "aqua -i ./aqua/ -o ./compiled-air -a",
|
"compile-aqua": "aqua -i ./aqua/ -o ./src/compiled",
|
||||||
"prettify-compiled": "prettier --write src/compiled",
|
"compile-aqua:air": "aqua -i ./aqua/ -o ./compiled-air -a",
|
||||||
"aqua": "aqua",
|
"prettify-compiled": "prettier --write src/compiled",
|
||||||
"do": "aqua dist deploy --addr /dns4/kras-04.fluence.dev/tcp/19001/wss/p2p/12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi --config-path deploy.json --service tsOracle"
|
"aqua": "aqua",
|
||||||
},
|
"do": "aqua dist deploy --addr /dns4/kras-04.fluence.dev/tcp/19001/wss/p2p/12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi --config-path deploy.json --service tsOracle"
|
||||||
"devDependencies": {
|
},
|
||||||
"@fluencelabs/aqua": "0.11.5",
|
"devDependencies": {
|
||||||
"@fluencelabs/aqua-dht": "0.2.5",
|
"@fluencelabs/aqua": "0.11.7",
|
||||||
"@fluencelabs/aqua-lib": "0.6.0",
|
"@fluencelabs/aqua-dht": "0.2.5",
|
||||||
"@types/jest": "29.5.2",
|
"@fluencelabs/aqua-lib": "0.6.0",
|
||||||
"jest": "29.5.0",
|
"@types/jest": "29.5.2",
|
||||||
"ts-jest": "29.1.0",
|
"jest": "29.5.0",
|
||||||
"@types/node": "18.11.18",
|
"ts-jest": "29.1.0",
|
||||||
"ts-node": "10.9.1",
|
"@types/node": "18.11.18",
|
||||||
"typescript": "5.1.3"
|
"ts-node": "10.9.1",
|
||||||
},
|
"typescript": "5.1.3"
|
||||||
"dependencies": {
|
},
|
||||||
"@fluencelabs/js-client.node": "0.6.9",
|
"dependencies": {
|
||||||
"loglevel": "1.8.1",
|
"@fluencelabs/js-client.node": "0.6.9",
|
||||||
"@fluencelabs/js-client.api": "0.11.6",
|
"loglevel": "1.8.1",
|
||||||
"@fluencelabs/fluence-network-environment": "1.0.14",
|
"@fluencelabs/js-client.api": "0.11.6",
|
||||||
"deep-equal": "2.2.1"
|
"@fluencelabs/fluence-network-environment": "1.0.14",
|
||||||
},
|
"deep-equal": "2.2.1"
|
||||||
"description": "Minimal template for aquamarine project."
|
},
|
||||||
|
"description": "Minimal template for aquamarine project."
|
||||||
}
|
}
|
||||||
|
@ -178,7 +178,7 @@ describe('Testing examples', () => {
|
|||||||
|
|
||||||
it('constants.aqua', async () => {
|
it('constants.aqua', async () => {
|
||||||
let constantCallResult = await constantsCall();
|
let constantCallResult = await constantsCall();
|
||||||
expect(constantCallResult).toEqual(['1', 'ab']);
|
expect(constantCallResult).toEqual(['5', 'default-str']);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('PARTICLE_TTL and PARTICLE_TIMESTAMP', async () => {
|
it('PARTICLE_TTL and PARTICLE_TIMESTAMP', async () => {
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import {passFunctionAsArg, reproArgsBug426} from '../compiled/examples/callArrow.js';
|
import {passFunctionAsArg, reproArgsBug426} from '../compiled/examples/callArrow.js';
|
||||||
|
|
||||||
export async function callArrowCall(relayPeerId: string): Promise<string> {
|
export async function callArrowCall(relayPeerId: string): Promise<string> {
|
||||||
@ -13,7 +12,6 @@ export async function callArrowCall(relayPeerId: string): Promise<string> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function reproArgsBug426Call(): Promise<string> {
|
export async function reproArgsBug426Call(): Promise<string> {
|
||||||
const relayPeerId = Fluence.getPeer().getStatus().relayPeerId;
|
|
||||||
return new Promise<string>((resolve, reject) => {
|
return new Promise<string>((resolve, reject) => {
|
||||||
reproArgsBug426((a: string) => {
|
reproArgsBug426((a: string) => {
|
||||||
resolve(a);
|
resolve(a);
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import {
|
import {
|
||||||
lng193Bug
|
lng193Bug
|
||||||
} from '../compiled/examples/closureReturnRename.js';
|
} from '../compiled/examples/closureReturnRename.js';
|
||||||
@ -8,4 +7,4 @@ const relays = config.relays
|
|||||||
|
|
||||||
export async function lng193BugCall(): Promise<number> {
|
export async function lng193BugCall(): Promise<number> {
|
||||||
return lng193Bug(relays[4].peerId, relays[5].peerId)
|
return lng193Bug(relays[4].peerId, relays[5].peerId)
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import {
|
import {
|
||||||
closureIn,
|
closureIn,
|
||||||
closureOut,
|
closureOut,
|
||||||
@ -29,4 +28,4 @@ export async function closuresCall(): Promise<[string, string[], string[], [stri
|
|||||||
|
|
||||||
export async function lng58CBugCall(): Promise<string> {
|
export async function lng58CBugCall(): Promise<string> {
|
||||||
return lng58Bug()
|
return lng58Bug()
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import { parFunc } from '../compiled/examples/par.js';
|
import { parFunc } from '../compiled/examples/par.js';
|
||||||
import { registerCoService } from '../compiled/examples/co.js';
|
import { registerCoService } from '../compiled/examples/co.js';
|
||||||
import {relay1} from "../__test__/examples.spec.js";
|
import {relay1} from "../__test__/examples.spec.js";
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import { doStuff, registerTestS } from '../compiled/examples/complex.js';
|
import { doStuff, registerTestS } from '../compiled/examples/complex.js';
|
||||||
|
|
||||||
export async function complexCall(selfPeerId: string, relayPeerId: string) {
|
export async function complexCall(selfPeerId: string, relayPeerId: string) {
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { FluencePeer } from '@fluencelabs/fluence';
|
|
||||||
import { getAliasedData, registerNodeIdGetter } from '../compiled/examples/dataAlias.js';
|
import { getAliasedData, registerNodeIdGetter } from '../compiled/examples/dataAlias.js';
|
||||||
|
|
||||||
export async function dataAliasCall() {
|
export async function dataAliasCall() {
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import {forBug499, iterateAndPrint, iterateAndPrintParallel} from '../compiled/examples/fold.js';
|
import {forBug499, iterateAndPrint, iterateAndPrintParallel} from '../compiled/examples/fold.js';
|
||||||
|
|
||||||
export async function foldCall(relayPeerId: string) {
|
export async function foldCall(relayPeerId: string) {
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import { getTwoResults } from '../compiled/examples/foldJoin.js';
|
import { getTwoResults } from '../compiled/examples/foldJoin.js';
|
||||||
|
|
||||||
export async function foldJoinCall(relayPeerId: string): Promise<number[]> {
|
export async function foldJoinCall(relayPeerId: string): Promise<number[]> {
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import {Fluence} from '@fluencelabs/fluence';
|
|
||||||
import {joinIdx, joinIdxLocal, joinIdxRelay} from "../compiled/examples/join.js";
|
import {joinIdx, joinIdxLocal, joinIdxRelay} from "../compiled/examples/join.js";
|
||||||
import { config } from '../config.js';
|
import { config } from '../config.js';
|
||||||
|
|
||||||
@ -20,4 +19,4 @@ export async function joinIdxRelayCall(relayPeerId: string) {
|
|||||||
// join.aqua
|
// join.aqua
|
||||||
|
|
||||||
return await joinIdxRelay(2, [relayPeerId, relays[2].peerId, relays[4].peerId], {ttl: 30000});
|
return await joinIdxRelay(2, [relayPeerId, relays[2].peerId, relays[4].peerId], {ttl: 30000});
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import { getPeerExternalAddresses } from '../compiled/examples/on.js';
|
import { getPeerExternalAddresses } from '../compiled/examples/on.js';
|
||||||
|
|
||||||
export async function onCall(relayPeerId: string): Promise<string[]> {
|
export async function onCall(relayPeerId: string): Promise<string[]> {
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import {parFunc, registerParService, testTimeout} from '../compiled/examples/par.js';
|
import {parFunc, registerParService, testTimeout} from '../compiled/examples/par.js';
|
||||||
import {config} from "../config.js";
|
import {config} from "../config.js";
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import {bugLNG60, create_client_util, registerAquaDHT} from '../compiled/examples/passArgs.js';
|
import {bugLNG60, create_client_util, registerAquaDHT} from '../compiled/examples/passArgs.js';
|
||||||
|
|
||||||
export async function passArgsCall() {
|
export async function passArgsCall() {
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { Fluence } from '@fluencelabs/fluence';
|
|
||||||
import { tryCatchTest } from '../compiled/examples/tryCatch.js';
|
import { tryCatchTest } from '../compiled/examples/tryCatch.js';
|
||||||
|
|
||||||
export async function tryCatchCall(relayPeerId: string): Promise<string[]> {
|
export async function tryCatchCall(relayPeerId: string): Promise<string[]> {
|
||||||
|
@ -1,31 +1,6 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
import { Fluence, FluencePeer } from '@fluencelabs/fluence';
|
|
||||||
import { krasnodar } from '@fluencelabs/fluence-network-environment';
|
|
||||||
import { helloWorld, registerStringExtra } from './compiled/examples/helloWorld.js';
|
|
||||||
|
|
||||||
const main = async () => {
|
const main = async () => {
|
||||||
// each compiled aqua function require a connected client
|
|
||||||
await Fluence.start({ connectTo: krasnodar[0] });
|
|
||||||
|
|
||||||
// example to how register a local service
|
|
||||||
// it could be used in aqua code as follows
|
|
||||||
// service StringExtra("service-id"):
|
|
||||||
// addNameToHello: string -> string
|
|
||||||
// see more in helloWorld.aqua
|
|
||||||
registerStringExtra({
|
|
||||||
addNameToHello: (arg0) => {
|
|
||||||
return `Hello, ${arg0}!`;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
// call an aqua function thet presented in ../aqua/helloWorld.aqua
|
|
||||||
const result = await helloWorld('NAME');
|
|
||||||
console.log(result);
|
|
||||||
|
|
||||||
// uncomment to play with examples
|
|
||||||
// await runExamples();
|
|
||||||
|
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@fluencelabs/aqua-language-server-api",
|
|
||||||
"version": "0.11.7",
|
|
||||||
"lockfileVersion": 2,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"name": "@fluencelabs/aqua-language-server-api",
|
|
||||||
"version": "0.11.7",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -7,9 +7,6 @@
|
|||||||
"aqua-lsp-api.js",
|
"aqua-lsp-api.js",
|
||||||
"aqua-lsp-api.d.ts"
|
"aqua-lsp-api.d.ts"
|
||||||
],
|
],
|
||||||
"scripts": {
|
|
||||||
"move:scalajs": "cp ../language-server-api/.js/target/scala-3.2.2/language-server-api-opt/main.js ./aqua-lsp-api.js"
|
|
||||||
},
|
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/fluencelabs/aqua.git"
|
"url": "git+https://github.com/fluencelabs/aqua.git"
|
||||||
|
7115
pnpm-lock.yaml
generated
Normal file
7115
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
5
pnpm-workspace.yaml
Normal file
5
pnpm-workspace.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
packages:
|
||||||
|
- 'cli/cli-npm'
|
||||||
|
- 'api/api-npm'
|
||||||
|
- 'language-server/language-server-npm'
|
||||||
|
- 'integration-tests'
|
Loading…
Reference in New Issue
Block a user