Generate and upload archives #3
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build fluence-cli snapshot | ||
on: | ||
workflow_call: | ||
inputs: | ||
ref: | ||
description: "Git ref to checkout to" | ||
type: string | ||
default: "main" | ||
marine-version: | ||
description: "marine version" | ||
type: string | ||
default: "null" | ||
mrepl-version: | ||
description: "mrepl version" | ||
type: string | ||
default: "null" | ||
marine-rs-sdk-version: | ||
description: "marine-rs-sdk version" | ||
type: string | ||
default: "null" | ||
marine-rs-sdk-test-version: | ||
description: "marine-rs-sdk-test version" | ||
type: string | ||
default: "null" | ||
js-client-snapshots: | ||
description: "js-client snapshots" | ||
type: string | ||
default: "null" | ||
aqua-snapshots: | ||
description: "aqua snapshots" | ||
type: string | ||
default: "null" | ||
outputs: | ||
version: | ||
description: "@fluencelabs/cli version" | ||
value: ${{ jobs.snapshot.outputs.version }} | ||
env: | ||
CI: true | ||
FORCE_COLOR: true | ||
jobs: | ||
snapshot: | ||
name: "Build snapshot" | ||
runs-on: builder | ||
outputs: | ||
version: ${{ steps.snapshot.outputs.version }} | ||
permissions: | ||
contents: read | ||
id-token: write | ||
steps: | ||
- name: Checkout fluence-cli | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: fluencelabs/cli | ||
ref: ${{ inputs.ref }} | ||
- name: Import secrets | ||
uses: hashicorp/vault-action@v2.7.3 | ||
id: secrets | ||
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; | ||
kv/cargo-registry/users/ci token | CARGO_REGISTRIES_FLUENCE_TOKEN | ||
- name: Setup Rust toolchain | ||
uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
- name: Setup pnpm | ||
uses: pnpm/action-setup@v2.4.0 | ||
with: | ||
version: 8 | ||
- name: Setup node with self-hosted npm registry | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: "18" | ||
registry-url: "https://npm.fluence.dev" | ||
cache: "yarn" | ||
- run: yarn install | ||
- name: Set js-client.api version | ||
if: inputs.js-client-snapshots != 'null' | ||
uses: fluencelabs/github-actions/npm-set-dependency@main | ||
with: | ||
package: "@fluencelabs/js-client.api" | ||
version: ${{ fromJson(inputs.js-client-snapshots)['js-client.api'] }} | ||
package-manager: yarn | ||
- name: Set js-client.node version | ||
if: inputs.js-client-snapshots != 'null' | ||
uses: fluencelabs/github-actions/npm-set-dependency@main | ||
with: | ||
package: "@fluencelabs/js-client.node" | ||
version: ${{ fromJson(inputs.js-client-snapshots)['js-client.node'] }} | ||
package-manager: yarn | ||
- name: Set aqua-api version | ||
if: inputs.aqua-snapshots != 'null' | ||
uses: fluencelabs/github-actions/npm-set-dependency@main | ||
with: | ||
package: "@fluencelabs/aqua-api" | ||
version: "${{ fromJson(inputs.aqua-snapshots)['aqua-api'] }}" | ||
package-manager: yarn | ||
- name: Update versions.json | ||
uses: ./.github/actions/replace-version | ||
with: | ||
versions: | | ||
{ | ||
"npm": { | ||
"@fluencelabs/js-client.api": "${{ inputs.js-client-snapshots == 'null' && 'null' || fromJson(inputs.js-client-snapshots)['js-client.api'] }}", | ||
"@fluencelabs/js-client.node": "${{ inputs.js-client-snapshots == 'null' && 'null' || fromJson(inputs.js-client-snapshots)['js-client.node'] }}" | ||
}, | ||
"cargo": { | ||
"marine": "${{ inputs.marine-version }}", | ||
"mrepl": "${{ inputs.mrepl-version }}", | ||
"marine-rs-sdk": "${{ inputs.marine-rs-sdk-version }}", | ||
"marine-rs-sdk-test": "${{ inputs.marine-rs-sdk-test-version }}" | ||
} | ||
} | ||
- name: Configure yarn to publish to private registry | ||
run: | | ||
yarn config set npmRegistryServer "https://npm.fluence.dev" | ||
yarn config set npmAlwaysAuth true | ||
yarn config set npmAuthToken $NODE_AUTH_TOKEN | ||
- 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: | ||
id: ${{ steps.version.outputs.id }} | ||
package-manager: yarn npm | ||
flags: --tag snapshot | ||
- name: Generate archives | ||
run: yarn oclif-pack | ||
- name: ls -alh dist/ | ||
- name: Upload archives to artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: linux-x64 | ||
path: dist/linux-x64.zip |