name: "Publish aqua" on: workflow_dispatch: inputs: tag: description: "tag to checkout to" type: string required: true workflow_call: inputs: tag: description: "tag to checkout to" type: string required: true env: FORCE_COLOR: true jobs: compile: runs-on: builder timeout-minutes: 60 steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ inputs.tag }} - name: Cache Scala uses: coursier/cache-action@v6 - name: Setup Scala uses: coursier/setup-action@v1 with: apps: sbt - name: JS CLI build run: sbt cliJS/fullLinkJS - name: JS API build run: sbt aqua-api/fullLinkJS - name: JS LSP build run: sbt language-server-api/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/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/target/scala-*/language-server-api-opt/main.js aqua-cli: name: "Publish aqua-cli" 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-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: 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: "cli/cli-npm/package-lock.json" cache: "npm" - run: npm i working-directory: cli/cli-npm - run: npm run build working-directory: cli/cli-npm - 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 aqua-native: name: "Publish aqua-native" strategy: matrix: runner: - runs-on: ubuntu-latest arch: amd64 os: linux static: true - runs-on: macos-latest arch: amd64 os: macos static: false needs: - compile uses: ./.github/workflows/binary.yml with: runs-on: ${{ matrix.runner.runs-on }} arch: ${{ matrix.runner.arch }} os: ${{ matrix.runner.os }} static: ${{ matrix.runner.static }}