Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Attempt to fix broken envs during build #11584

Merged
merged 13 commits into from
Nov 21, 2024
24 changes: 12 additions & 12 deletions .github/workflows/gui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,9 +196,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
- if: failure() && runner.os == 'Windows'
name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
Expand Down Expand Up @@ -250,9 +250,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
- if: failure() && runner.os == 'Windows'
name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
Expand Down Expand Up @@ -305,9 +305,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
- if: failure() && runner.os == 'Windows'
name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
Expand Down Expand Up @@ -362,9 +362,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
- run: xvfb-run corepack pnpm -r --filter enso exec playwright test
env:
DEBUG: "pw:browser log:"
Expand Down Expand Up @@ -435,9 +435,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
- run: corepack pnpm -r --filter enso exec playwright test
env:
DEBUG: "pw:browser log:"
Expand Down Expand Up @@ -501,9 +501,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.MICROSOFT_CODE_SIGNING_CERT_PASSWORD }}
WIN_CSC_LINK: ${{ secrets.MICROSOFT_CODE_SIGNING_CERT }}
- run: corepack pnpm -r --filter enso exec playwright test
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -392,9 +392,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
- if: failure() && runner.os == 'Windows'
name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
Expand Down Expand Up @@ -461,9 +461,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
- if: failure() && runner.os == 'Windows'
name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
Expand Down Expand Up @@ -528,9 +528,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
- if: failure() && runner.os == 'Windows'
name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
Expand Down Expand Up @@ -589,9 +589,9 @@ jobs:
ENSO_CLOUD_GOOGLE_ANALYTICS_TAG: ${{ vars.ENSO_CLOUD_GOOGLE_ANALYTICS_TAG }}
ENSO_CLOUD_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }}
ENSO_CLOUD_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }}
ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
ENSO_IDE_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VITE_ENSO_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }}
VITE_ENSO_MAPBOX_API_TOKEN: ${{ vars.ENSO_MAPBOX_API_TOKEN }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.MICROSOFT_CODE_SIGNING_CERT_PASSWORD }}
WIN_CSC_LINK: ${{ secrets.MICROSOFT_CODE_SIGNING_CERT }}
- if: failure() && runner.os == 'Windows'
Expand Down
28 changes: 25 additions & 3 deletions app/common/src/appConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,21 @@ export async function readEnvironmentFromFile() {
const filePath = path.join(url.fileURLToPath(new URL('../..', import.meta.url)), fileName)
const buildInfo = await (async () => {
try {
return await import('../../../build.json', { with: { type: 'json' } })
const build = await import('../../../build.json', { with: { type: 'json' } })
// Handle importing json file regardless of CommonJS/ESM integation settings.
return 'default' in build ? build.default : build
} catch {
return { commit: '', version: '', engineVersion: '', name: '' }
}
})()
console.info('Build info: ' + JSON.stringify(buildInfo))
discardUndefinedEnv('ENSO_IDE_VERSION')
discardUndefinedEnv('ENSO_CLOUD_DASHBOARD_VERSION')
discardUndefinedEnv('ENSO_CLOUD_DASHBOARD_COMMIT_HASH')

try {
const file = await fs.readFile(filePath, { encoding: 'utf-8' })
console.info(`Reading environment from file: ${filePath}`)
/** @type {readonly (readonly [string, string])[]} */
let entries = file.split('\n').flatMap(line => {
if (/^\s*$|^.s*#/.test(line)) {
Expand All @@ -36,10 +44,14 @@ export async function readEnvironmentFromFile() {
})
if (isProduction) {
entries = entries.filter(kv => {
const [k] = kv
return process.env[k] == null
const [k, v] = kv
return v !== 'undefined' && process.env[k] == null
})
}

const foundVars = entries.map(([k, _]) => k).join(', ')
console.info(`Found variables: ${foundVars}`)

const variables = Object.fromEntries(entries)
if (!isProduction || entries.length > 0) {
Object.assign(process.env, variables)
Expand All @@ -52,6 +64,16 @@ export async function readEnvironmentFromFile() {
}
}

/**
* Discard environment variable value when is an "undefined" string.
* @param {string} name Name of an env variable.
*/
function discardUndefinedEnv(name) {
if (process.env[name] === 'undefined') {
delete process.env[name]
}
}

// ===============
// === globals ===
// ===============
Expand Down
2 changes: 0 additions & 2 deletions app/gui/env.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -230,8 +230,6 @@ declare global {
// @ts-expect-error The index signature is intentional to disallow unknown env vars.
readonly ENSO_CLOUD_GOOGLE_ANALYTICS_TAG?: string
// @ts-expect-error The index signature is intentional to disallow unknown env vars.
readonly ENSO_CLOUD_DASHBOARD_VERSION?: string
// @ts-expect-error The index signature is intentional to disallow unknown env vars.
readonly ENSO_CLOUD_DASHBOARD_COMMIT_HASH?: string
// @ts-expect-error The index signature is intentional to disallow unknown env vars.
readonly ENSO_CLOUD_ENSO_HOST?: string
Expand Down
3 changes: 2 additions & 1 deletion app/gui/src/dashboard/layouts/VersionChecker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ import { download } from '#/utilities/download'
import { getDownloadUrl, getLatestRelease } from '#/utilities/github'
import { startTransition, useState } from 'react'

const CURRENT_VERSION = process.env.ENSO_CLOUD_DASHBOARD_VERSION ?? 'unknown-dev'
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const CURRENT_VERSION: string = import.meta.env.ENSO_IDE_VERSION ?? 'unknown-dev'
const CURRENT_VERSION_IS_DEV = CURRENT_VERSION.endsWith('-dev')
const CURRENT_VERSION_IS_NIGHTLY = CURRENT_VERSION.includes('-nightly')
const CURRENT_VERSION_NUMBER = getVersionNumber(CURRENT_VERSION)
Expand Down
4 changes: 2 additions & 2 deletions app/gui/src/dashboard/modals/AboutModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ export default function AboutModal() {
['chromeVersion', window.versionInfo.chrome],
] as const)
: [
...(process.env.ENSO_CLOUD_DASHBOARD_VERSION == null ?
...(import.meta.env.ENSO_IDE_VERSION == null ?
[]
: ([['version', process.env.ENSO_CLOUD_DASHBOARD_VERSION]] as const)),
: ([['version', import.meta.env.ENSO_IDE_VERSION]] as const)),
...(process.env.ENSO_CLOUD_DASHBOARD_COMMIT_HASH == null ?
[]
: ([['build', process.env.ENSO_CLOUD_DASHBOARD_COMMIT_HASH]] as const)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ function supressCopy(event: KeyboardEvent) {

const { LicenseManager } = await import('ag-grid-enterprise')

if (typeof import.meta.env.VITE_ENSO_AG_GRID_LICENSE_KEY !== 'string') {
if (typeof import.meta.env.ENSO_IDE_AG_GRID_LICENSE_KEY !== 'string') {
console.warn('The AG_GRID_LICENSE_KEY is not defined.')
if (import.meta.env.DEV) {
// Hide annoying license validation errors in dev mode when the license is not defined. The
Expand All @@ -240,7 +240,7 @@ if (typeof import.meta.env.VITE_ENSO_AG_GRID_LICENSE_KEY !== 'string') {
}
}
} else {
const agGridLicenseKey = import.meta.env.VITE_ENSO_AG_GRID_LICENSE_KEY
const agGridLicenseKey = import.meta.env.ENSO_IDE_AG_GRID_LICENSE_KEY
LicenseManager.setLicenseKey(agGridLicenseKey)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,10 @@ const props = defineProps<{ data: Data }>()
* Mapbox API access token.
* All the limits of API are listed here: https://docs.mapbox.com/api/#rate-limits
*/
const TOKEN = import.meta.env.VITE_ENSO_MAPBOX_API_TOKEN
const TOKEN = import.meta.env.ENSO_IDE_MAPBOX_API_TOKEN
if (TOKEN == null) {
console.warn(
'Mapbox API token is missing, to use Geo Map visualization please provide VITE_ENSO_MAPBOX_API_TOKEN.',
'Mapbox API token is missing, to use Geo Map visualization please provide ENSO_IDE_MAPBOX_API_TOKEN.',
)
}
const SCATTERPLOT_LAYER = 'Scatterplot_Layer'
Expand Down
3 changes: 2 additions & 1 deletion app/gui/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ const entrypoint =

// NOTE(Frizi): This rename is for the sake of forward compatibility with not yet merged config refactor on bazel branch,
// and because Vite's HTML env replacements only work with import.meta.env variables, not defines.
process.env.ENSO_IDE_VERSION = process.env.ENSO_CLOUD_DASHBOARD_VERSION
process.env.ENSO_IDE_VERSION ??= process.env.ENSO_CLOUD_DASHBOARD_VERSION
console.info(`Building IDE version: ${process.env.ENSO_IDE_VERSION}`)

const isCI = process.env.CI === 'true'

Expand Down
2 changes: 1 addition & 1 deletion build-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ required-versions:
# NB. The Rust version is pinned in rust-toolchain.toml.
# NB. The Node version is pinned in .node-version.
cargo-watch: ^8.1.1
wasm-pack: ^0.12.1
wasm-pack: ">=0.12.1"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this change? Are not afraid of wasm-pack updates even a bit?

Copy link
Contributor Author

@Frizi Frizi Nov 21, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am using 0.13 and there is no issue with that. Historically they also didn't really make much updates. 0.13 was released a few weeks ago and it was a first release since a few years back. For CI, we pin the installed version anyway. This change just makes the potential compatibility issues with local setup go away, as any new installation will default to 0.13 now. We are phasing out wasm-pack usage completely soon enough anyway.

8 changes: 4 additions & 4 deletions build/build/src/ci_gen/job.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ use crate::ci_gen::RunStepsBuilder;
use crate::ci_gen::RunnerType;
use crate::ci_gen::RELEASE_CLEANING_POLICY;
use crate::engine::env;
use crate::ide::web::env::VITE_ENSO_AG_GRID_LICENSE_KEY;
use crate::ide::web::env::VITE_ENSO_MAPBOX_API_TOKEN;
use crate::ide::web::env::ENSO_IDE_AG_GRID_LICENSE_KEY;
use crate::ide::web::env::ENSO_IDE_MAPBOX_API_TOKEN;

use ide_ci::actions::workflow::definition::cancel_workflow_action;
use ide_ci::actions::workflow::definition::shell;
Expand Down Expand Up @@ -145,8 +145,8 @@ pub fn expose_cloud_vars(step: Step) -> Step {
/// Expose variables for the GUI build.
pub fn expose_gui_vars(step: Step) -> Step {
let step = step
.with_variable_exposed_as(ENSO_AG_GRID_LICENSE_KEY, VITE_ENSO_AG_GRID_LICENSE_KEY)
.with_variable_exposed_as(ENSO_MAPBOX_API_TOKEN, VITE_ENSO_MAPBOX_API_TOKEN);
.with_variable_exposed_as(ENSO_AG_GRID_LICENSE_KEY, ENSO_IDE_AG_GRID_LICENSE_KEY)
.with_variable_exposed_as(ENSO_MAPBOX_API_TOKEN, ENSO_IDE_MAPBOX_API_TOKEN);

// GUI includes the cloud-delivered dashboard.
expose_cloud_vars(step)
Expand Down
4 changes: 2 additions & 2 deletions build/build/src/ide/web.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,9 @@ pub mod env {
// GUI-specific environment variables
define_env_var! {
/// License key for the AG Grid library.
VITE_ENSO_AG_GRID_LICENSE_KEY, String;
ENSO_IDE_AG_GRID_LICENSE_KEY, String;
/// The Mapbox API token for the GeoMap visualization.
VITE_ENSO_MAPBOX_API_TOKEN, String;
ENSO_IDE_MAPBOX_API_TOKEN, String;
}
}

Expand Down
24 changes: 14 additions & 10 deletions build/cli/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,9 @@ impl Processor {
let context = self.context();
let target = self.target::<Target>();
let job = self.resolve_build_job(job);
let info = self.write_build_info_file();
async move {
info.await?;
let job = job.await?;
target?.build(context, job).await
}
Expand Down Expand Up @@ -517,6 +519,16 @@ impl Processor {
.boxed()
}

pub fn write_build_info_file(&self) -> BoxFuture<'static, Result> {
let build_info_get = self.js_build_info();
let build_info_path = self.context.inner.repo_root.join(&*enso_build::ide::web::BUILD_INFO);
async move {
let build_info = build_info_get.await?;
build_info_path.write_as_json(&build_info)
}
.boxed()
}

pub fn handle_ide(&self, ide: arg::ide::Target) -> BoxFuture<'static, Result> {
match ide.command {
arg::ide::Command::Build { params } => self.build_ide(params).void_ok().boxed(),
Expand Down Expand Up @@ -559,19 +571,11 @@ impl Processor {
sign_artifacts,
} = params;

let build_info_get = self.js_build_info();
let build_info_path = self.context.inner.repo_root.join(&*enso_build::ide::web::BUILD_INFO);

let build_info = async move {
let build_info = build_info_get.await?;
build_info_path.write_as_json(&build_info)
};

let info = self.write_build_info_file();
let gui = self.get(gui);

let input = ide::BuildInput {
gui: async move {
build_info.await?;
info.await?;
gui.await
}
.boxed(),
Expand Down
Loading