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:
|
||||
name: aqua-${{ inputs.os }}-${{ inputs.arch }}
|
||||
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:
|
||||
aqua:
|
||||
name: "aqua"
|
||||
if: >
|
||||
github.event_name == 'push' ||
|
||||
contains(github.event.pull_request.labels.*.name, 'e2e')
|
||||
@ -34,38 +35,24 @@ jobs:
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
aqua-playground:
|
||||
fluence-cli-snapshot:
|
||||
name: "fluence-cli"
|
||||
needs: aqua
|
||||
uses: fluencelabs/aqua-playground/.github/workflows/tests.yml@master
|
||||
uses: fluencelabs/fluence-cli/.github/workflows/snapshot.yml@main
|
||||
with:
|
||||
aqua-version: "${{ needs.aqua.outputs.aqua-version }}"
|
||||
|
||||
registry:
|
||||
needs: aqua
|
||||
uses: fluencelabs/registry/.github/workflows/tests.yml@main
|
||||
with:
|
||||
aqua-version: "${{ needs.aqua.outputs.aqua-version }}"
|
||||
aqua-snapshots: "${{ needs.aqua.outputs.aqua-snapshots }}"
|
||||
|
||||
fluence-cli:
|
||||
needs: aqua
|
||||
uses: fluencelabs/fluence-cli/.github/workflows/tests.yml@main
|
||||
with:
|
||||
aqua-api-version: "${{ needs.aqua.outputs.aqua-api-version }}"
|
||||
aqua-snapshots: "${{ needs.aqua.outputs.aqua-snapshots }}"
|
||||
|
||||
aqua-native:
|
||||
name: "aqua"
|
||||
strategy:
|
||||
matrix:
|
||||
runner:
|
||||
- runs-on: ubuntu-latest
|
||||
arch: amd64
|
||||
os: linux
|
||||
static: true
|
||||
registry:
|
||||
needs:
|
||||
- aqua
|
||||
uses: ./.github/workflows/binary.yml
|
||||
- fluence-cli-snapshot
|
||||
uses: fluencelabs/registry/.github/workflows/tests.yml@main
|
||||
with:
|
||||
runs-on: ${{ matrix.runner.runs-on }}
|
||||
arch: ${{ matrix.runner.arch }}
|
||||
os: ${{ matrix.runner.os }}
|
||||
static: ${{ matrix.runner.static }}
|
||||
aqua-snapshots: "${{ needs.aqua.outputs.aqua-snapshots }}"
|
||||
fluence-cli-version: "${{ needs.fluence-cli-snapshot.outputs.version }}"
|
||||
|
172
.github/workflows/publish.yml
vendored
172
.github/workflows/publish.yml
vendored
@ -18,10 +18,14 @@ env:
|
||||
FORCE_COLOR: true
|
||||
|
||||
jobs:
|
||||
compile:
|
||||
publish:
|
||||
runs-on: builder
|
||||
timeout-minutes: 60
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
@ -36,32 +40,9 @@ jobs:
|
||||
with:
|
||||
apps: sbt
|
||||
|
||||
- name: JS CLI build
|
||||
run: sbt cliJS/fullLinkJS
|
||||
- name: scala-js build
|
||||
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:
|
||||
name: "Publish aqua-cli"
|
||||
@ -71,23 +52,12 @@ jobs:
|
||||
needs:
|
||||
- compile
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
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
|
||||
uses: hashicorp/vault-action@v2.5.0
|
||||
with:
|
||||
@ -101,129 +71,24 @@ jobs:
|
||||
secrets: |
|
||||
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
|
||||
with:
|
||||
node-version: "16"
|
||||
registry-url: "https://registry.npmjs.org"
|
||||
cache-dependency-path: "cli/cli-npm/package-lock.json"
|
||||
cache: "npm"
|
||||
cache: "pnpm"
|
||||
|
||||
- run: npm i
|
||||
working-directory: cli/cli-npm
|
||||
- run: pnpm -r i
|
||||
|
||||
- run: npm run build
|
||||
working-directory: cli/cli-npm
|
||||
- run: pnpm -r build
|
||||
|
||||
- name: Publish to NPM registry
|
||||
run: npm 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
|
||||
run: pnpm publish --access public --tag unstable
|
||||
|
||||
aqua-native:
|
||||
name: "Publish aqua-native"
|
||||
@ -238,8 +103,7 @@ jobs:
|
||||
arch: amd64
|
||||
os: macos
|
||||
static: false
|
||||
needs:
|
||||
- compile
|
||||
|
||||
uses: ./.github/workflows/binary.yml
|
||||
with:
|
||||
runs-on: ${{ matrix.runner.runs-on }}
|
||||
|
23
.github/workflows/release.yml
vendored
23
.github/workflows/release.yml
vendored
@ -61,18 +61,33 @@ jobs:
|
||||
run: |
|
||||
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
|
||||
run: npm version ${{ steps.version.outputs.version }}
|
||||
run: pnpm version ${{ steps.version.outputs.version }}
|
||||
working-directory: cli/cli-npm
|
||||
|
||||
- name: Set api version
|
||||
run: npm version ${{ steps.version.outputs.version }}
|
||||
working-directory: api/aqua-api-npm
|
||||
run: pnpm version ${{ steps.version.outputs.version }}
|
||||
working-directory: api/api-npm
|
||||
|
||||
- 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
|
||||
|
||||
- name: Regenerate lock
|
||||
run: pnpm -r i
|
||||
|
||||
- name: Commit version bump
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
|
6
.github/workflows/run-tests.yml
vendored
6
.github/workflows/run-tests.yml
vendored
@ -21,6 +21,12 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
sbt-tests:
|
||||
name: "aqua"
|
||||
uses: ./.github/workflows/sbt-tests.yml
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
tests:
|
||||
name: "aqua"
|
||||
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:
|
||||
workflow_call:
|
||||
inputs:
|
||||
fluence-js-version:
|
||||
description: "@fluencejs/fluence version"
|
||||
type: string
|
||||
default: "null"
|
||||
ref:
|
||||
description: "git ref to checkout to"
|
||||
type: string
|
||||
default: "main"
|
||||
outputs:
|
||||
aqua-version:
|
||||
description: "@fluencelabs/aqua version"
|
||||
value: ${{ jobs.aqua-cli.outputs.version }}
|
||||
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 }}
|
||||
aqua-snapshots:
|
||||
description: "aqua snapshots"
|
||||
value: ${{ jobs.publish.outputs.snapshots }}
|
||||
|
||||
env:
|
||||
FORCE_COLOR: true
|
||||
CI: true
|
||||
|
||||
jobs:
|
||||
compile:
|
||||
name: "Compile"
|
||||
publish:
|
||||
name: "Publish snapshots"
|
||||
runs-on: builder
|
||||
timeout-minutes: 60
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
|
||||
outputs:
|
||||
snapshots: "${{ steps.snapshot.outputs.snapshots }}"
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
@ -50,66 +48,10 @@ jobs:
|
||||
with:
|
||||
apps: sbt
|
||||
|
||||
- name: JS CLI build
|
||||
- name: scala-js build
|
||||
env:
|
||||
SNAPSHOT: ${{ steps.version.outputs.id }}
|
||||
run: sbt cliJS/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
|
||||
run: sbt ";cliJS/fastOptJS;language-server-apiJS/fastOptJS;aqua-apiJS/fastOptJS"
|
||||
|
||||
- name: Import secrets
|
||||
uses: hashicorp/vault-action@v2.5.0
|
||||
@ -124,163 +66,28 @@ jobs:
|
||||
secrets: |
|
||||
kv/npm-registry/basicauth/ci token | NODE_AUTH_TOKEN
|
||||
|
||||
- name: Setup node with self-hosted npm registry
|
||||
uses: actions/setup-node@v3
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v2.2.4
|
||||
with:
|
||||
node-version: "16"
|
||||
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
|
||||
version: 8
|
||||
|
||||
- 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: "api/aqua-api-npm/package-lock.json"
|
||||
cache: "npm"
|
||||
cache: "pnpm"
|
||||
|
||||
- run: npm i
|
||||
working-directory: api/aqua-api-npm
|
||||
- run: pnpm -r i
|
||||
|
||||
- name: Set fluence-js version from branch
|
||||
if: inputs.fluence-js-version != 'null'
|
||||
working-directory: cli/cli-npm
|
||||
run: npm i --save-dev -E @fluencelabs/fluence@${{ inputs.fluence-js-version }}
|
||||
- name: Set package version
|
||||
run: node ci.cjs bump-version ${{ steps.version.outputs.id }}
|
||||
|
||||
- name: Generate snapshot version
|
||||
id: version
|
||||
uses: fluencelabs/github-actions/generate-snapshot-id@main
|
||||
- run: pnpm -r build
|
||||
|
||||
- name: Publish snapshot
|
||||
id: snapshot
|
||||
uses: fluencelabs/github-actions/npm-publish-snapshot@main
|
||||
uses: fluencelabs/github-actions/pnpm-publish-snapshot@main
|
||||
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 }}
|
||||
set-version: false
|
||||
|
105
.github/workflows/tests.yml
vendored
105
.github/workflows/tests.yml
vendored
@ -6,20 +6,73 @@ on:
|
||||
ref:
|
||||
description: "git ref to checkout to"
|
||||
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:
|
||||
tests:
|
||||
name: "Run sbt tests"
|
||||
aqua:
|
||||
name: "Run tests"
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 60
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
|
||||
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
|
||||
with:
|
||||
repository: fluencelabs/aqua
|
||||
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
|
||||
uses: coursier/cache-action@v6
|
||||
|
||||
@ -28,5 +81,45 @@ jobs:
|
||||
with:
|
||||
apps: sbt
|
||||
|
||||
- name: Run tests
|
||||
run: sbt test
|
||||
- name: cli-js build
|
||||
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
|
||||
|
||||
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
|
||||
|
@ -28,9 +28,9 @@ Comprehensive documentation and usage examples as well as a number of videos can
|
||||
## Repository Structure
|
||||
|
||||
- [**api**](./api) - Aqua API for JS
|
||||
- [aqua-api](./api/aqua-api) - Scala sources
|
||||
- [aqua-api-npm](./api/aqua-api-npm) - JS project
|
||||
- [aqua-api-example](./api/aqua-api-example) - usage example
|
||||
- [api](./api/api) - Scala sources
|
||||
- [api-npm](./api/api-npm) - JS project
|
||||
- [api-example](./api/api-example) - usage example
|
||||
- [**aqua-run**](./aqua-run) - Aqua API to run functions
|
||||
- [**backend**](./backend) - compilation backend interface
|
||||
- [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",
|
||||
"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": {
|
||||
"type": "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
|
||||
.settings(
|
||||
Compile / fastOptJS / artifactPath := baseDirectory.value / "../../cli-npm" / "aqua.js",
|
||||
Compile / fullOptJS / artifactPath := baseDirectory.value / "../../cli-npm" / "aqua.js",
|
||||
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.ESModule)),
|
||||
scalaJSUseMainModuleInitializer := true
|
||||
)
|
||||
@ -122,6 +124,8 @@ lazy val `language-server-api` = crossProject(JSPlatform, JVMPlatform)
|
||||
|
||||
lazy val `language-server-apiJS` = `language-server-api`.js
|
||||
.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)),
|
||||
scalaJSUseMainModuleInitializer := true
|
||||
)
|
||||
@ -143,12 +147,14 @@ lazy val `js-imports` = project
|
||||
lazy val `aqua-api` = crossProject(JSPlatform, JVMPlatform)
|
||||
.withoutSuffixFor(JVMPlatform)
|
||||
.crossType(CrossType.Pure)
|
||||
.in(file("api/aqua-api"))
|
||||
.in(file("api/api"))
|
||||
.settings(commons: _*)
|
||||
.dependsOn(`aqua-run`, `backend-api`)
|
||||
|
||||
lazy val `aqua-apiJS` = `aqua-api`.js
|
||||
.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)),
|
||||
scalaJSUseMainModuleInitializer := true,
|
||||
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" ]
|
||||
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
|
||||
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
|
||||
|
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": {
|
||||
"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"
|
||||
},
|
||||
"dependencies": {
|
||||
@ -25,7 +24,8 @@
|
||||
"@fluencelabs/aqua-lib": "0.6.0",
|
||||
"@fluencelabs/fluence": "0.28.0",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.14",
|
||||
"ipfs-http-client": "50.1.2"
|
||||
"ipfs-http-client": "50.1.2",
|
||||
"multiaddr": "^10.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ts-node": "10.9.1",
|
||||
|
@ -1,49 +1,50 @@
|
||||
{
|
||||
"name": "aquamarine-template",
|
||||
"version": "0.3.9",
|
||||
"keywords": [
|
||||
"typescript",
|
||||
"template"
|
||||
],
|
||||
"type": "module",
|
||||
"author": "FluenceLabs (https://github.com/fluencelabs)",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"files": [
|
||||
"dist/",
|
||||
"src/"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"test": "NODE_OPTIONS=--experimental-vm-modules npx jest --detectOpenHandles",
|
||||
"examples": "jest",
|
||||
"pubsub": "node -r ts-node/register src/pubsub.ts",
|
||||
"exec": "npm run compile-aqua && npm run prettify-compiled && node -r ts-node/register src/index.ts",
|
||||
"run": "node -r ts-node/register src/index.ts",
|
||||
"compile-aqua": "aqua -i ./aqua/ -o ./src/compiled",
|
||||
"compile-aqua:air": "aqua -i ./aqua/ -o ./compiled-air -a",
|
||||
"prettify-compiled": "prettier --write src/compiled",
|
||||
"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",
|
||||
"@fluencelabs/aqua-dht": "0.2.5",
|
||||
"@fluencelabs/aqua-lib": "0.6.0",
|
||||
"@types/jest": "29.5.2",
|
||||
"jest": "29.5.0",
|
||||
"ts-jest": "29.1.0",
|
||||
"@types/node": "18.11.18",
|
||||
"ts-node": "10.9.1",
|
||||
"typescript": "5.1.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fluencelabs/js-client.node": "0.6.9",
|
||||
"loglevel": "1.8.1",
|
||||
"@fluencelabs/js-client.api": "0.11.6",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.14",
|
||||
"deep-equal": "2.2.1"
|
||||
},
|
||||
"description": "Minimal template for aquamarine project."
|
||||
"name": "aquamarine-template",
|
||||
"private": true,
|
||||
"version": "0.3.9",
|
||||
"keywords": [
|
||||
"typescript",
|
||||
"template"
|
||||
],
|
||||
"type": "module",
|
||||
"author": "FluenceLabs (https://github.com/fluencelabs)",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"files": [
|
||||
"dist/",
|
||||
"src/"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsc & npm run compile-aqua",
|
||||
"test": "NODE_OPTIONS=--experimental-vm-modules npx jest --detectOpenHandles",
|
||||
"examples": "jest",
|
||||
"pubsub": "node -r ts-node/register src/pubsub.ts",
|
||||
"exec": "npm run compile-aqua && npm run prettify-compiled && node -r ts-node/register src/index.ts",
|
||||
"run": "node -r ts-node/register src/index.ts",
|
||||
"compile-aqua": "aqua -i ./aqua/ -o ./src/compiled",
|
||||
"compile-aqua:air": "aqua -i ./aqua/ -o ./compiled-air -a",
|
||||
"prettify-compiled": "prettier --write src/compiled",
|
||||
"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.7",
|
||||
"@fluencelabs/aqua-dht": "0.2.5",
|
||||
"@fluencelabs/aqua-lib": "0.6.0",
|
||||
"@types/jest": "29.5.2",
|
||||
"jest": "29.5.0",
|
||||
"ts-jest": "29.1.0",
|
||||
"@types/node": "18.11.18",
|
||||
"ts-node": "10.9.1",
|
||||
"typescript": "5.1.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fluencelabs/js-client.node": "0.6.9",
|
||||
"loglevel": "1.8.1",
|
||||
"@fluencelabs/js-client.api": "0.11.6",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.14",
|
||||
"deep-equal": "2.2.1"
|
||||
},
|
||||
"description": "Minimal template for aquamarine project."
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ describe('Testing examples', () => {
|
||||
|
||||
it('constants.aqua', async () => {
|
||||
let constantCallResult = await constantsCall();
|
||||
expect(constantCallResult).toEqual(['1', 'ab']);
|
||||
expect(constantCallResult).toEqual(['5', 'default-str']);
|
||||
});
|
||||
|
||||
it('PARTICLE_TTL and PARTICLE_TIMESTAMP', async () => {
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Fluence } from '@fluencelabs/fluence';
|
||||
import {passFunctionAsArg, reproArgsBug426} from '../compiled/examples/callArrow.js';
|
||||
|
||||
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> {
|
||||
const relayPeerId = Fluence.getPeer().getStatus().relayPeerId;
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
reproArgsBug426((a: string) => {
|
||||
resolve(a);
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Fluence } from '@fluencelabs/fluence';
|
||||
import {
|
||||
lng193Bug
|
||||
} from '../compiled/examples/closureReturnRename.js';
|
||||
@ -8,4 +7,4 @@ const relays = config.relays
|
||||
|
||||
export async function lng193BugCall(): Promise<number> {
|
||||
return lng193Bug(relays[4].peerId, relays[5].peerId)
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Fluence } from '@fluencelabs/fluence';
|
||||
import {
|
||||
closureIn,
|
||||
closureOut,
|
||||
@ -29,4 +28,4 @@ export async function closuresCall(): Promise<[string, string[], string[], [stri
|
||||
|
||||
export async function lng58CBugCall(): Promise<string> {
|
||||
return lng58Bug()
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Fluence } from '@fluencelabs/fluence';
|
||||
import { parFunc } from '../compiled/examples/par.js';
|
||||
import { registerCoService } from '../compiled/examples/co.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';
|
||||
|
||||
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';
|
||||
|
||||
export async function dataAliasCall() {
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Fluence } from '@fluencelabs/fluence';
|
||||
import {forBug499, iterateAndPrint, iterateAndPrintParallel} from '../compiled/examples/fold.js';
|
||||
|
||||
export async function foldCall(relayPeerId: string) {
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Fluence } from '@fluencelabs/fluence';
|
||||
import { getTwoResults } from '../compiled/examples/foldJoin.js';
|
||||
|
||||
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 { config } from '../config.js';
|
||||
|
||||
@ -20,4 +19,4 @@ export async function joinIdxRelayCall(relayPeerId: string) {
|
||||
// join.aqua
|
||||
|
||||
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';
|
||||
|
||||
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 {config} from "../config.js";
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Fluence } from '@fluencelabs/fluence';
|
||||
import {bugLNG60, create_client_util, registerAquaDHT} from '../compiled/examples/passArgs.js';
|
||||
|
||||
export async function passArgsCall() {
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Fluence } from '@fluencelabs/fluence';
|
||||
import { tryCatchTest } from '../compiled/examples/tryCatch.js';
|
||||
|
||||
export async function tryCatchCall(relayPeerId: string): Promise<string[]> {
|
||||
|
@ -1,31 +1,6 @@
|
||||
#!/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 () => {
|
||||
// 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);
|
||||
};
|
||||
|
||||
|
@ -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.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": {
|
||||
"type": "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