mirror of
https://github.com/expo/eas-cli.git
synced 2026-11-14 17:50:32 -10:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
951ccba62c | ||
|
|
8c0e01d64c | ||
|
|
539acb8c23 | ||
|
|
18d85d571a | ||
|
|
f2cf409b21 | ||
|
|
0cf8cd014f |
No files matched your search
@@ -2,6 +2,15 @@
|
||||
|
||||
This is the log of notable changes to EAS CLI and related packages.
|
||||
|
||||
## [27.7.2](https://github.com/expo/eas-cli/releases/tag/v27.7.2) - 2026-11-10
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
- [eas-cli] Add `--log-source` to `eas simulator` to select which Android logs a session records. ([#4823](https://github.com/expo/eas-cli/pull/4823) by [@vonovak](https://github.com/vonovak))
|
||||
- [build-tools] Start SSH session shells in the job's build directory instead of the worker's directory. ([#4843](https://github.com/expo/eas-cli/pull/4843) by [@AHGIJMKLKKZNPJKQR](https://github.com/AHGIJMKLKKZNPJKQR))
|
||||
- [eas-cli] Show that the ssh session has ended, instead of saying SSH was not enabled, when `eas workflow:ssh` is given the ID of a finished build. ([#4842](https://github.com/expo/eas-cli/pull/4842) by [@AHGIJMKLKKZNPJKQR](https://github.com/AHGIJMKLKKZNPJKQR))
|
||||
- [eas-cli] Show the ID argument and examples in `eas workflow:ssh --help`. ([#4829](https://github.com/expo/eas-cli/pull/4829) by [@AHGIJMKLKKZNPJKQR](https://github.com/AHGIJMKLKKZNPJKQR))
|
||||
|
||||
## [27.7.1](https://github.com/expo/eas-cli/releases/tag/v27.7.1) - 2026-11-10
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"STAGING": "27.7.0",
|
||||
"PRODUCTION": "27.7.0"
|
||||
"STAGING": "27.7.1",
|
||||
"PRODUCTION": "27.7.1"
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"npmClient": "yarn",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"$schema": "node_modules/lerna/schemas/lerna-schema.json"
|
||||
}
|
||||
@@ -1,5 +1,11 @@
|
||||
# @expo/build-tools
|
||||
|
||||
## 27.7.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Start SSH session shells in the job's build directory instead of the worker's directory. ([#4843](https://github.com/expo/eas-cli/pull/4843) by [@AHGIJMKLKKZNPJKQR](https://github.com/AHGIJMKLKKZNPJKQR))
|
||||
|
||||
## 27.7.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/build-tools",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "BUSL-1.1",
|
||||
"author": "Expo <[email protected]>",
|
||||
@@ -42,17 +42,17 @@
|
||||
"dependencies": {
|
||||
"@expo/config": "55.0.10",
|
||||
"@expo/config-plugins": "55.0.7",
|
||||
"@expo/downloader": "27.7.1",
|
||||
"@expo/eas-build-job": "27.7.1",
|
||||
"@expo/downloader": "27.7.2",
|
||||
"@expo/eas-build-job": "27.7.2",
|
||||
"@expo/env": "^0.4.0",
|
||||
"@expo/logger": "27.7.1",
|
||||
"@expo/logger": "27.7.2",
|
||||
"@expo/package-manager": "1.9.10",
|
||||
"@expo/plist": "^0.3.5",
|
||||
"@expo/results": "^1.0.0",
|
||||
"@expo/spawn-async": "1.7.2",
|
||||
"@expo/steps": "27.7.1",
|
||||
"@expo/template-file": "27.7.1",
|
||||
"@expo/turtle-spawn": "27.7.1",
|
||||
"@expo/steps": "27.7.2",
|
||||
"@expo/template-file": "27.7.2",
|
||||
"@expo/turtle-spawn": "27.7.2",
|
||||
"@expo/xcpretty": "^4.4.7",
|
||||
"@ngrok/ngrok": "1.7.0",
|
||||
"@sentry/node": "7.77.0",
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
import { SystemError } from '@expo/eas-build-job';
|
||||
import downloadFile from '@expo/downloader';
|
||||
import spawn from '@expo/turtle-spawn';
|
||||
import { spawnSync } from 'node:child_process';
|
||||
import fs from 'node:fs/promises';
|
||||
import os from 'node:os';
|
||||
import path from 'node:path';
|
||||
|
||||
import { createMockLogger } from '../../__tests__/utils/logger';
|
||||
import { BuildContext } from '../../context';
|
||||
@@ -164,10 +167,14 @@ describe(startUptermHostAsync, () => {
|
||||
};
|
||||
}
|
||||
|
||||
function makeCtx(env: Record<string, string> = {}): BuildContext {
|
||||
function makeCtx(
|
||||
env: Record<string, string> = {},
|
||||
buildDirectory = '/workingdir/build'
|
||||
): BuildContext {
|
||||
return {
|
||||
logger: createMockLogger(),
|
||||
env,
|
||||
buildDirectory,
|
||||
} as unknown as BuildContext;
|
||||
}
|
||||
|
||||
@@ -227,6 +234,33 @@ describe(startUptermHostAsync, () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('starts each client shell in the build directory', async () => {
|
||||
const realFs = jest.requireActual<typeof import('node:fs')>('node:fs');
|
||||
const tmpDir = realFs.mkdtempSync(path.join(os.tmpdir(), 'eas-upterm-join-'));
|
||||
try {
|
||||
const buildDirectory = path.join(tmpDir, "it's $HOME `pwd`", 'build');
|
||||
realFs.mkdirSync(buildDirectory, { recursive: true });
|
||||
|
||||
await startUptermHostAsync(makeCtx({}, buildDirectory), { relayServerUrl: 'wss://r' });
|
||||
|
||||
const joinScriptCall = mockedFs.writeFile.mock.calls.find(
|
||||
([file]) => file === '/tmp/eas-ssh-1/join.sh'
|
||||
);
|
||||
const joinScriptPath = path.join(tmpDir, 'join.sh');
|
||||
realFs.writeFileSync(joinScriptPath, String(joinScriptCall?.[1]));
|
||||
const result = spawnSync('bash', [joinScriptPath], {
|
||||
cwd: tmpDir,
|
||||
env: { PATH: process.env.PATH, HOME: tmpDir },
|
||||
input: 'pwd\n',
|
||||
encoding: 'utf8',
|
||||
});
|
||||
|
||||
expect(result.stdout.trim()).toBe(buildDirectory);
|
||||
} finally {
|
||||
realFs.rmSync(tmpDir, { recursive: true, force: true });
|
||||
}
|
||||
});
|
||||
|
||||
it('downloads from GCS into a fresh temp dir when upterm is not on PATH', async () => {
|
||||
uptermOnPath = false;
|
||||
|
||||
|
||||
@@ -202,7 +202,12 @@ export async function startUptermHostAsync(
|
||||
await spawn('ssh-keygen', ['-t', 'ed25519', '-N', '', '-f', hostKeyPath, '-q'], {
|
||||
logger: ctx.logger,
|
||||
});
|
||||
await fs.writeFile(forceCommandPath, '#!/usr/bin/env bash\nexec bash -l\n', { mode: 0o755 });
|
||||
const quotedBuildDirectory = `'${ctx.buildDirectory.replaceAll("'", "'\\''")}'`;
|
||||
await fs.writeFile(
|
||||
forceCommandPath,
|
||||
`#!/usr/bin/env bash\ncd -- ${quotedBuildDirectory}\nexec bash -l\n`,
|
||||
{ mode: 0o755 }
|
||||
);
|
||||
|
||||
let currentProcess: SpawnPromise<SpawnResult> | null = null;
|
||||
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# create-eas-build-function
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
No changes in this release.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "create-eas-build-function",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"description": "Create functions for use in EAS Build custom builds.",
|
||||
"keywords": [
|
||||
"expo",
|
||||
@@ -35,7 +35,7 @@
|
||||
"clean": "rimraf ./build/ \"*.tsbuildinfo\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@expo/steps": "27.7.1"
|
||||
"@expo/steps": "27.7.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@expo/package-manager": "1.9.10",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/downloader
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
No changes in this release.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/downloader",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "BUSL-1.1",
|
||||
"author": "Expo <[email protected]>",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# eas-build-cache-provider
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
No changes in this release.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "eas-build-cache-provider",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"description": "A build cache provider plugin for the Expo CLI",
|
||||
"homepage": "https://github.com/expo/eas-cli",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/eas-build-job
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/eas-build-job",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "MIT",
|
||||
"author": "Expo <[email protected]>",
|
||||
@@ -25,9 +25,9 @@
|
||||
"clean": "rimraf node_modules dist coverage \"*.tsbuildinfo\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@expo/logger": "27.7.1",
|
||||
"@expo/logger": "27.7.2",
|
||||
"@expo/results": "1.0.0",
|
||||
"@expo/turtle-spawn": "27.7.1",
|
||||
"@expo/turtle-spawn": "27.7.2",
|
||||
"joi": "^17.13.9",
|
||||
"semver": "^7.6.2",
|
||||
"zod": "^4.6.7"
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# eas-cli
|
||||
|
||||
## 27.7.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Add `--log-source` to `eas simulator` to select which Android logs a session records. ([#4823](https://github.com/expo/eas-cli/pull/4823) by [@vonovak](https://github.com/vonovak))
|
||||
- Show that the ssh session has ended, instead of saying SSH was not enabled, when `eas workflow:ssh` is given the ID of a finished build. ([#4842](https://github.com/expo/eas-cli/pull/4842) by [@AHGIJMKLKKZNPJKQR](https://github.com/AHGIJMKLKKZNPJKQR))
|
||||
- Show the ID argument and examples in `eas workflow:ssh --help`. ([#4829](https://github.com/expo/eas-cli/pull/4829) by [@AHGIJMKLKKZNPJKQR](https://github.com/AHGIJMKLKKZNPJKQR))
|
||||
|
||||
## 27.7.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
+186
-163
File diff suppressed because it is too large.
Load diff
Generated
+20
@@ -47534,6 +47534,26 @@
|
||||
"isDeprecated": false,
|
||||
"deprecationReason": null
|
||||
},
|
||||
{
|
||||
"name": "logSources",
|
||||
"description": "Logs to record during the session and upload afterward: emulator-output and device-logcat. Defaults to\n[\"emulator-output\"]. An empty list disables recording and uploading both sources. Device-wide logcat can contain\ncredentials and personal data; include device-logcat only when you want to retain it.\nLogs are not redacted and use the existing 90-day artifact retention policy.",
|
||||
"type": {
|
||||
"kind": "LIST",
|
||||
"name": null,
|
||||
"ofType": {
|
||||
"kind": "NON_NULL",
|
||||
"name": null,
|
||||
"ofType": {
|
||||
"kind": "SCALAR",
|
||||
"name": "String",
|
||||
"ofType": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultValue": null,
|
||||
"isDeprecated": false,
|
||||
"deprecationReason": null
|
||||
},
|
||||
{
|
||||
"name": "systemImagePackage",
|
||||
"description": "Android SDK system image package to use for the emulator (e.g.\n\"system-images;android-35;google_apis;x86_64\").",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "eas-cli",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"description": "EAS command line tool",
|
||||
"keywords": [
|
||||
"cli",
|
||||
@@ -48,12 +48,12 @@
|
||||
"@expo/code-signing-certificates": "0.0.5",
|
||||
"@expo/config": "55.0.10",
|
||||
"@expo/config-plugins": "55.0.7",
|
||||
"@expo/eas-build-job": "27.7.1",
|
||||
"@expo/eas-json": "27.7.1",
|
||||
"@expo/eas-build-job": "27.7.2",
|
||||
"@expo/eas-json": "27.7.2",
|
||||
"@expo/env": "^1.0.0",
|
||||
"@expo/experimentation": "0.0.5",
|
||||
"@expo/json-file": "8.3.3",
|
||||
"@expo/logger": "27.7.1",
|
||||
"@expo/logger": "27.7.2",
|
||||
"@expo/multipart-body-parser": "2.0.0",
|
||||
"@expo/osascript": "2.1.4",
|
||||
"@expo/package-manager": "1.9.10",
|
||||
@@ -65,7 +65,7 @@
|
||||
"@expo/results": "1.0.0",
|
||||
"@expo/rudder-sdk-node": "1.1.1",
|
||||
"@expo/spawn-async": "1.7.2",
|
||||
"@expo/steps": "27.7.1",
|
||||
"@expo/steps": "27.7.2",
|
||||
"@expo/timeago.js": "1.0.0",
|
||||
"@oclif/core": "^4.8.3",
|
||||
"@oclif/plugin-autocomplete": "^3.2.40",
|
||||
|
||||
@@ -1685,6 +1685,38 @@ describe(Simulator, () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('accumulates repeated --log-source flags in order', async () => {
|
||||
const { command } = createCommand([
|
||||
'--platform',
|
||||
'android',
|
||||
'--non-interactive',
|
||||
'--log-source',
|
||||
'emulator-output',
|
||||
'--log-source',
|
||||
'device-logcat',
|
||||
]);
|
||||
await command.runAsync();
|
||||
expect(mockCreateDeviceRunSessionAsync).toHaveBeenCalledWith(
|
||||
graphqlClient,
|
||||
expect.objectContaining({ android: { logSources: ['emulator-output', 'device-logcat'] } })
|
||||
);
|
||||
});
|
||||
|
||||
it('leaves Android log sources omitted unless explicitly requested', async () => {
|
||||
const { command } = createCommand(['--platform', 'android', '--non-interactive']);
|
||||
await command.runAsync();
|
||||
expect(mockCreateDeviceRunSessionAsync.mock.calls[0][1].android?.logSources).toBeUndefined();
|
||||
});
|
||||
|
||||
it.each([
|
||||
{ args: ['--platform', 'ios', '--log-source', 'device-logcat'] },
|
||||
{ args: ['--platform', 'android', '--log-source', 'unknown'] },
|
||||
])('rejects invalid Android logging options $args', async ({ args }) => {
|
||||
const { command } = createCommand([...args, '--non-interactive']);
|
||||
await expect(command.runAsync()).rejects.toThrow();
|
||||
expect(mockCreateDeviceRunSessionAsync).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('passes --network-capture to the createDeviceRunSession mutation', async () => {
|
||||
const { command } = createCommand([
|
||||
'--platform',
|
||||
|
||||
@@ -190,6 +190,12 @@ With local egress, actions wait for the connection and require interactive mode.
|
||||
description:
|
||||
'Version of the package backing the simulator session (e.g. "0.1.3-alpha.3"). Defaults to "latest" when omitted.',
|
||||
}),
|
||||
'log-source': Flags.option({
|
||||
description:
|
||||
'Android logs to record during the session and upload afterward. Repeat to select both sources; replaces the default emulator-output selection. Device-wide device-logcat may contain credentials and personal data. Logs are not redacted.',
|
||||
options: ['emulator-output', 'device-logcat'],
|
||||
multiple: true,
|
||||
})(),
|
||||
'network-capture': Flags.boolean({
|
||||
allowNo: true,
|
||||
description:
|
||||
@@ -300,6 +306,7 @@ With local egress, actions wait for the connection and require interactive mode.
|
||||
const tags = flags.tag?.map(tag => tag.trim()).filter(tag => tag.length > 0);
|
||||
const deviceIdentifier = flags.device?.trim() || undefined;
|
||||
const systemImagePackage = flags['system-image']?.trim() || undefined;
|
||||
const logSources = flags['log-source'];
|
||||
const buildId = flags['build-id']?.trim() || undefined;
|
||||
const buildFingerprint = flags['build-fingerprint']?.trim() || undefined;
|
||||
const applicationArchiveUrlFromFlag = flags['application-archive-url']?.trim() || undefined;
|
||||
@@ -346,6 +353,11 @@ With local egress, actions wait for the connection and require interactive mode.
|
||||
|
||||
const platform = await resolvePlatformAsync(flags.platform, nonInteractive);
|
||||
const egress = flags.egress === 'local' ? DeviceRunSessionEgress.Local : undefined;
|
||||
if (logSources && platform !== AppPlatform.Android) {
|
||||
throw new EasCommandError(
|
||||
'--log-source selects Android emulator logs. Pass --platform android.'
|
||||
);
|
||||
}
|
||||
if (systemImagePackage && platform !== AppPlatform.Android) {
|
||||
throw new EasCommandError('--system-image is only supported with --platform android.');
|
||||
}
|
||||
@@ -421,6 +433,19 @@ With local egress, actions wait for the connection and require interactive mode.
|
||||
packageVersion: flags['package-version'],
|
||||
nonInteractive,
|
||||
});
|
||||
const android = {
|
||||
...(deviceIdentifier ? { deviceIdentifier } : {}),
|
||||
...(systemImagePackage ? { systemImagePackage } : {}),
|
||||
...(logSources ? { logSources } : {}),
|
||||
};
|
||||
const platformInput =
|
||||
platform === AppPlatform.Ios
|
||||
? deviceIdentifier
|
||||
? { ios: { deviceIdentifier } }
|
||||
: {}
|
||||
: Object.keys(android).length
|
||||
? { android }
|
||||
: {};
|
||||
const session = await withSimulatorRequestAnalyticsAsync(
|
||||
analytics,
|
||||
requestProperties,
|
||||
@@ -436,18 +461,7 @@ With local egress, actions wait for the connection and require interactive mode.
|
||||
packageVersion: flags['package-version'],
|
||||
networkCapture: flags['network-capture'],
|
||||
...(networkCaptureFields.length ? { networkCaptureFields } : {}),
|
||||
...(platform === AppPlatform.Ios
|
||||
? deviceIdentifier
|
||||
? { ios: { deviceIdentifier } }
|
||||
: {}
|
||||
: deviceIdentifier || systemImagePackage
|
||||
? {
|
||||
android: {
|
||||
...(deviceIdentifier ? { deviceIdentifier } : {}),
|
||||
...(systemImagePackage ? { systemImagePackage } : {}),
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...platformInput,
|
||||
...(buildId ? { buildId } : {}),
|
||||
...(buildFingerprint ? { buildFingerprint } : {}),
|
||||
...(applicationArchiveUrlFromFlag
|
||||
|
||||
@@ -105,6 +105,13 @@ export default class WorkflowSsh extends EasCommand {
|
||||
static override description =
|
||||
'[EXPERIMENTAL] open an ssh session on the worker running a workflow job';
|
||||
|
||||
static override usage = 'workflow:ssh [--show-connect] ID';
|
||||
|
||||
static override examples = [
|
||||
'$ eas workflow:ssh <ID> \t # Open an SSH session on the worker. Use the ID in the job logs ("Start SSH session" step)',
|
||||
'$ eas workflow:ssh --show-connect <ID> \t # Print the ssh command to connect, without opening the SSH session',
|
||||
];
|
||||
|
||||
static override strict = false;
|
||||
|
||||
static override flags = {
|
||||
|
||||
+7
@@ -6658,6 +6658,13 @@ export type CreateAndConfigureRepositoryInput = {
|
||||
export type CreateAndroidDeviceRunSessionInput = {
|
||||
/** AVD hardware profile id to use for the emulator (e.g. "pixel_9"). Defaults to "medium_phone". */
|
||||
deviceIdentifier?: InputMaybe<Scalars['String']['input']>;
|
||||
/**
|
||||
* Logs to record during the session and upload afterward: emulator-output and device-logcat. Defaults to
|
||||
* ["emulator-output"]. An empty list disables recording and uploading both sources. Device-wide logcat can contain
|
||||
* credentials and personal data; include device-logcat only when you want to retain it.
|
||||
* Logs are not redacted and use the existing 90-day artifact retention policy.
|
||||
*/
|
||||
logSources?: InputMaybe<Array<Scalars['String']['input']>>;
|
||||
/**
|
||||
* Android SDK system image package to use for the emulator (e.g.
|
||||
* "system-images;android-35;google_apis;x86_64").
|
||||
|
||||
@@ -215,9 +215,10 @@ export const WorkflowJobSshQuery = {
|
||||
throw error;
|
||||
}
|
||||
const build = data.builds.byId;
|
||||
const jobCompleted = FINAL_BUILD_STATUSES.has(build.status);
|
||||
return {
|
||||
sshRequested: build.sshSession !== null,
|
||||
jobCompleted: FINAL_BUILD_STATUSES.has(build.status),
|
||||
sshRequested: build.sshSession !== null || jobCompleted,
|
||||
jobCompleted,
|
||||
session: build.sshSession,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { ExpoGraphqlClient } from '../../../commandUtils/context/contextUtils/createGraphqlClient';
|
||||
import { resolveSshConnectStatus, terminalSshStatusMessage } from '../../../commands/workflow/ssh';
|
||||
import { GraphqlError } from '../../client';
|
||||
import { BuildStatus, JobRunStatus, WorkflowJobStatus } from '../../generated';
|
||||
import { WorkflowJobSshQuery } from '../WorkflowJobSshQuery';
|
||||
@@ -227,6 +228,19 @@ describe(WorkflowJobSshQuery.connectInfoForBuildAsync.name, () => {
|
||||
}
|
||||
);
|
||||
|
||||
it.each([BuildStatus.Errored, BuildStatus.Finished, BuildStatus.Canceled])(
|
||||
'reports the ssh session as ended for a %s build without an sshSession',
|
||||
async status => {
|
||||
const { graphqlClient } = makeClient({ id: 'build-1', status, sshSession: null });
|
||||
|
||||
const sshStatus = resolveSshConnectStatus(
|
||||
await WorkflowJobSshQuery.connectInfoForBuildAsync(graphqlClient, 'build-1')
|
||||
);
|
||||
expect(sshStatus).toBe('ended');
|
||||
expect(terminalSshStatusMessage(sshStatus, 'build-1')).toBe('This ssh session has ended.');
|
||||
}
|
||||
);
|
||||
|
||||
it.each([BuildStatus.New, BuildStatus.InQueue, BuildStatus.PendingCancel])(
|
||||
'treats %s as not completed',
|
||||
async status => {
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/eas-json
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/eas-json",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"description": "A library for interacting with eas.json",
|
||||
"homepage": "https://github.com/expo/eas-cli",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
@@ -32,7 +32,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "7.23.5",
|
||||
"@expo/eas-build-job": "27.7.1",
|
||||
"@expo/eas-build-job": "27.7.2",
|
||||
"chalk": "4.1.2",
|
||||
"env-string": "1.0.1",
|
||||
"fs-extra": "11.2.0",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# eas-cli-local-build-plugin
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "eas-cli-local-build-plugin",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"description": "Tool for running EAS compatible builds on a local machine.",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "BUSL-1.1",
|
||||
@@ -26,12 +26,12 @@
|
||||
"clean": "rimraf node_modules dist coverage \"*.tsbuildinfo\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@expo/build-tools": "27.7.1",
|
||||
"@expo/build-tools": "27.7.2",
|
||||
"@expo/bunyan": "^4.0.1",
|
||||
"@expo/eas-build-job": "27.7.1",
|
||||
"@expo/logger": "27.7.1",
|
||||
"@expo/eas-build-job": "27.7.2",
|
||||
"@expo/logger": "27.7.2",
|
||||
"@expo/spawn-async": "^1.7.2",
|
||||
"@expo/turtle-spawn": "27.7.1",
|
||||
"@expo/turtle-spawn": "27.7.2",
|
||||
"chalk": "4.1.2",
|
||||
"env-paths": "^2.2.1",
|
||||
"fs-extra": "^11.2.0",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/logger
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
No changes in this release.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/logger",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "BUSL-1.1",
|
||||
"author": "Expo <[email protected]>",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/simulator-launcher
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/simulator-launcher",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"description": "Launch and claim Simulator sessions on EAS workers",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "BUSL-1.1",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/steps
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/steps",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "BUSL-1.1",
|
||||
"author": "Expo <[email protected]>",
|
||||
@@ -27,8 +27,8 @@
|
||||
"clean": "rimraf node_modules dist coverage \"*.tsbuildinfo\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@expo/eas-build-job": "27.7.1",
|
||||
"@expo/logger": "27.7.1",
|
||||
"@expo/eas-build-job": "27.7.2",
|
||||
"@expo/logger": "27.7.2",
|
||||
"@expo/spawn-async": "^1.7.2",
|
||||
"arg": "^5.0.2",
|
||||
"fast-glob": "^3.3.2",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/template-file
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
No changes in this release.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/template-file",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "BUSL-1.1",
|
||||
"author": "Expo <[email protected]>",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/turtle-spawn
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
No changes in this release.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/turtle-spawn",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "BUSL-1.1",
|
||||
"author": "Expo <[email protected]>",
|
||||
@@ -25,7 +25,7 @@
|
||||
"clean": "rimraf node_modules dist coverage \"*.tsbuildinfo\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@expo/logger": "27.7.1",
|
||||
"@expo/logger": "27.7.2",
|
||||
"@expo/spawn-async": "^1.7.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/vm-tools
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
No changes in this release.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/vm-tools",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"description": "VM startup script loader",
|
||||
"bugs": "https://github.com/expo/eas-cli/issues",
|
||||
"license": "BUSL-1.1",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @expo/worker
|
||||
|
||||
## 27.7.2
|
||||
|
||||
No changes in this release.
|
||||
|
||||
## 27.7.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@expo/worker",
|
||||
"version": "27.7.1",
|
||||
"version": "27.7.2",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "yarn watch",
|
||||
@@ -19,17 +19,17 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "7.24.7",
|
||||
"@expo/build-tools": "27.7.1",
|
||||
"@expo/build-tools": "27.7.2",
|
||||
"@expo/config-plugins": "55.0.7",
|
||||
"@expo/config-types": "55.0.5",
|
||||
"@expo/eas-build-job": "27.7.1",
|
||||
"@expo/logger": "27.7.1",
|
||||
"@expo/eas-build-job": "27.7.2",
|
||||
"@expo/logger": "27.7.2",
|
||||
"@expo/results": "1.0.0",
|
||||
"@expo/rudder-sdk-node": "1.1.1",
|
||||
"@expo/spawn-async": "1.7.2",
|
||||
"@expo/steps": "27.7.1",
|
||||
"@expo/template-file": "27.7.1",
|
||||
"@expo/turtle-spawn": "27.7.1",
|
||||
"@expo/steps": "27.7.2",
|
||||
"@expo/template-file": "27.7.2",
|
||||
"@expo/turtle-spawn": "27.7.2",
|
||||
"@hapi/boom": "10.0.1",
|
||||
"check-disk-space": "3.4.0",
|
||||
"fast-glob": "3.3.2",
|
||||
|
||||
@@ -2515,24 +2515,24 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@expo/build-tools@npm:27.7.1, @expo/build-tools@workspace:packages/build-tools":
|
||||
"@expo/build-tools@npm:27.7.2, @expo/build-tools@workspace:packages/build-tools":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@expo/build-tools@workspace:packages/build-tools"
|
||||
dependencies:
|
||||
"@expo/config": "npm:55.0.10"
|
||||
"@expo/config-plugins": "npm:55.0.7"
|
||||
"@expo/downloader": "npm:27.7.1"
|
||||
"@expo/eas-build-job": "npm:27.7.1"
|
||||
"@expo/downloader": "npm:27.7.2"
|
||||
"@expo/eas-build-job": "npm:27.7.2"
|
||||
"@expo/env": "npm:^0.4.0"
|
||||
"@expo/logger": "npm:27.7.1"
|
||||
"@expo/logger": "npm:27.7.2"
|
||||
"@expo/package-manager": "npm:1.9.10"
|
||||
"@expo/plist": "npm:^0.3.5"
|
||||
"@expo/repack-app": "npm:~0.9.0"
|
||||
"@expo/results": "npm:^1.0.0"
|
||||
"@expo/spawn-async": "npm:1.7.2"
|
||||
"@expo/steps": "npm:27.7.1"
|
||||
"@expo/template-file": "npm:27.7.1"
|
||||
"@expo/turtle-spawn": "npm:27.7.1"
|
||||
"@expo/steps": "npm:27.7.2"
|
||||
"@expo/template-file": "npm:27.7.2"
|
||||
"@expo/turtle-spawn": "npm:27.7.2"
|
||||
"@expo/xcpretty": "npm:^4.4.7"
|
||||
"@ngrok/ngrok": "npm:1.7.0"
|
||||
"@sentry/node": "npm:7.77.0"
|
||||
@@ -2768,7 +2768,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@expo/downloader@npm:27.7.1, @expo/downloader@workspace:packages/downloader":
|
||||
"@expo/downloader@npm:27.7.2, @expo/downloader@workspace:packages/downloader":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@expo/downloader@workspace:packages/downloader"
|
||||
dependencies:
|
||||
@@ -2784,13 +2784,13 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@expo/eas-build-job@npm:27.7.1, @expo/eas-build-job@workspace:packages/eas-build-job":
|
||||
"@expo/eas-build-job@npm:27.7.2, @expo/eas-build-job@workspace:packages/eas-build-job":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@expo/eas-build-job@workspace:packages/eas-build-job"
|
||||
dependencies:
|
||||
"@expo/logger": "npm:27.7.1"
|
||||
"@expo/logger": "npm:27.7.2"
|
||||
"@expo/results": "npm:1.0.0"
|
||||
"@expo/turtle-spawn": "npm:27.7.1"
|
||||
"@expo/turtle-spawn": "npm:27.7.2"
|
||||
"@types/jest": "npm:^29.5.12"
|
||||
"@types/node": "npm:22.20.5"
|
||||
jest: "npm:^29.7.0"
|
||||
@@ -2803,12 +2803,12 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@expo/eas-json@npm:27.7.1, @expo/eas-json@workspace:packages/eas-json":
|
||||
"@expo/eas-json@npm:27.7.2, @expo/eas-json@workspace:packages/eas-json":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@expo/eas-json@workspace:packages/eas-json"
|
||||
dependencies:
|
||||
"@babel/code-frame": "npm:7.23.5"
|
||||
"@expo/eas-build-job": "npm:27.7.1"
|
||||
"@expo/eas-build-job": "npm:27.7.2"
|
||||
"@tsconfig/node22": "npm:22.0.6"
|
||||
"@types/babel__code-frame": "npm:7.0.3"
|
||||
"@types/fs-extra": "npm:11.0.4"
|
||||
@@ -2931,7 +2931,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@expo/logger@npm:27.7.1, @expo/logger@workspace:packages/logger":
|
||||
"@expo/logger@npm:27.7.2, @expo/logger@workspace:packages/logger":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@expo/logger@workspace:packages/logger"
|
||||
dependencies:
|
||||
@@ -3149,12 +3149,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@expo/steps@npm:27.7.1, @expo/steps@workspace:packages/steps":
|
||||
"@expo/steps@npm:27.7.2, @expo/steps@workspace:packages/steps":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@expo/steps@workspace:packages/steps"
|
||||
dependencies:
|
||||
"@expo/eas-build-job": "npm:27.7.1"
|
||||
"@expo/logger": "npm:27.7.1"
|
||||
"@expo/eas-build-job": "npm:27.7.2"
|
||||
"@expo/logger": "npm:27.7.2"
|
||||
"@expo/spawn-async": "npm:^1.7.2"
|
||||
"@jest/globals": "npm:^29.7.0"
|
||||
"@types/jest": "npm:^29.5.12"
|
||||
@@ -3180,7 +3180,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@expo/template-file@npm:27.7.1, @expo/template-file@workspace:packages/template-file":
|
||||
"@expo/template-file@npm:27.7.2, @expo/template-file@workspace:packages/template-file":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@expo/template-file@workspace:packages/template-file"
|
||||
dependencies:
|
||||
@@ -3203,11 +3203,11 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@expo/turtle-spawn@npm:27.7.1, @expo/turtle-spawn@workspace:packages/turtle-spawn":
|
||||
"@expo/turtle-spawn@npm:27.7.2, @expo/turtle-spawn@workspace:packages/turtle-spawn":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@expo/turtle-spawn@workspace:packages/turtle-spawn"
|
||||
dependencies:
|
||||
"@expo/logger": "npm:27.7.1"
|
||||
"@expo/logger": "npm:27.7.2"
|
||||
"@expo/spawn-async": "npm:^1.7.2"
|
||||
"@types/jest": "npm:^29.5.12"
|
||||
"@types/node": "npm:22.20.5"
|
||||
@@ -3238,17 +3238,17 @@ __metadata:
|
||||
resolution: "@expo/worker@workspace:packages/worker"
|
||||
dependencies:
|
||||
"@babel/core": "npm:7.24.7"
|
||||
"@expo/build-tools": "npm:27.7.1"
|
||||
"@expo/build-tools": "npm:27.7.2"
|
||||
"@expo/config-plugins": "npm:55.0.7"
|
||||
"@expo/config-types": "npm:55.0.5"
|
||||
"@expo/eas-build-job": "npm:27.7.1"
|
||||
"@expo/logger": "npm:27.7.1"
|
||||
"@expo/eas-build-job": "npm:27.7.2"
|
||||
"@expo/logger": "npm:27.7.2"
|
||||
"@expo/results": "npm:1.0.0"
|
||||
"@expo/rudder-sdk-node": "npm:1.1.1"
|
||||
"@expo/spawn-async": "npm:1.7.2"
|
||||
"@expo/steps": "npm:27.7.1"
|
||||
"@expo/template-file": "npm:27.7.1"
|
||||
"@expo/turtle-spawn": "npm:27.7.1"
|
||||
"@expo/steps": "npm:27.7.2"
|
||||
"@expo/template-file": "npm:27.7.2"
|
||||
"@expo/turtle-spawn": "npm:27.7.2"
|
||||
"@hapi/boom": "npm:10.0.1"
|
||||
"@types/babel__core": "npm:7.20.5"
|
||||
"@types/fs-extra": "npm:11.0.4"
|
||||
@@ -10123,7 +10123,7 @@ __metadata:
|
||||
resolution: "create-eas-build-function@workspace:packages/create-eas-build-function"
|
||||
dependencies:
|
||||
"@expo/package-manager": "npm:1.9.10"
|
||||
"@expo/steps": "npm:27.7.1"
|
||||
"@expo/steps": "npm:27.7.2"
|
||||
"@jest/globals": "npm:^29.7.0"
|
||||
"@types/jest": "npm:^29.5.12"
|
||||
"@types/node": "npm:22.20.5"
|
||||
@@ -10707,12 +10707,12 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "eas-cli-local-build-plugin@workspace:packages/local-build-plugin"
|
||||
dependencies:
|
||||
"@expo/build-tools": "npm:27.7.1"
|
||||
"@expo/build-tools": "npm:27.7.2"
|
||||
"@expo/bunyan": "npm:^4.0.1"
|
||||
"@expo/eas-build-job": "npm:27.7.1"
|
||||
"@expo/logger": "npm:27.7.1"
|
||||
"@expo/eas-build-job": "npm:27.7.2"
|
||||
"@expo/logger": "npm:27.7.2"
|
||||
"@expo/spawn-async": "npm:^1.7.2"
|
||||
"@expo/turtle-spawn": "npm:27.7.1"
|
||||
"@expo/turtle-spawn": "npm:27.7.2"
|
||||
"@types/fs-extra": "npm:^11.0.4"
|
||||
"@types/hapi__joi": "npm:^17.1.14"
|
||||
"@types/lodash": "npm:^4.17.4"
|
||||
@@ -10766,12 +10766,12 @@ __metadata:
|
||||
"@expo/code-signing-certificates": "npm:0.0.5"
|
||||
"@expo/config": "npm:55.0.10"
|
||||
"@expo/config-plugins": "npm:55.0.7"
|
||||
"@expo/eas-build-job": "npm:27.7.1"
|
||||
"@expo/eas-json": "npm:27.7.1"
|
||||
"@expo/eas-build-job": "npm:27.7.2"
|
||||
"@expo/eas-json": "npm:27.7.2"
|
||||
"@expo/env": "npm:^1.0.0"
|
||||
"@expo/experimentation": "npm:0.0.5"
|
||||
"@expo/json-file": "npm:8.3.3"
|
||||
"@expo/logger": "npm:27.7.1"
|
||||
"@expo/logger": "npm:27.7.2"
|
||||
"@expo/multipart-body-parser": "npm:2.0.0"
|
||||
"@expo/osascript": "npm:2.1.4"
|
||||
"@expo/package-manager": "npm:1.9.10"
|
||||
@@ -10783,7 +10783,7 @@ __metadata:
|
||||
"@expo/results": "npm:1.0.0"
|
||||
"@expo/rudder-sdk-node": "npm:1.1.1"
|
||||
"@expo/spawn-async": "npm:1.7.2"
|
||||
"@expo/steps": "npm:27.7.1"
|
||||
"@expo/steps": "npm:27.7.2"
|
||||
"@expo/timeago.js": "npm:1.0.0"
|
||||
"@graphql-codegen/cli": "npm:6.3.1"
|
||||
"@graphql-codegen/introspection": "npm:5.0.2"
|
||||
|
||||
Reference in new issue
Block a user