Compare commits

..
4 Commits
9 changed files with 66 additions and 36 deletions

No files matched your search

+3
View File
@@ -1,3 +1,6 @@
# NOTE (2026-08-03): We can no longer add npm dist-tags from CI.
# This workflow will fail if run without dry_run. Run the npm dist-tag
# commands manually instead until CI tagging is restored.
on:
workflow_dispatch:
inputs:
+33 -13
View File
@@ -37,20 +37,40 @@ jobs:
run: yarn build
- name: Publish packages to npm
run: yarn run -T lerna publish from-package --yes --no-verify-access
- name: Add latest-eas-build-staging tag
# Temporarily disabled (2026-08-03): we can no longer add npm dist-tags from CI.
# The tags must be added manually. A Slack reminder with the commands is posted below.
# - name: Add latest-eas-build-staging tag
# env:
# NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}
# run: |
# VERSION=$(cat lerna.json | jq -r .version)
# echo //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN > ~/.npmrc
# npm dist-tag add eas-cli@$VERSION latest-eas-build-staging
# - name: Add latest-eas-build tag
# env:
# NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}
# run: |
# VERSION=$(cat lerna.json | jq -r .version)
# echo //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN > ~/.npmrc
# npm dist-tag add eas-cli@$VERSION latest-eas-build
- name: Resolve version
run: echo "EAS_CLI_VERSION=$(jq -r .version lerna.json)" >> $GITHUB_ENV
- name: Slack reminder to add npm tags manually
uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}
run: |
VERSION=$(cat lerna.json | jq -r .version)
echo //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN > ~/.npmrc
npm dist-tag add eas-cli@$VERSION latest-eas-build-staging
- name: Add latest-eas-build tag
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}
run: |
VERSION=$(cat lerna.json | jq -r .version)
echo //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN > ~/.npmrc
npm dist-tag add eas-cli@$VERSION latest-eas-build
SLACK_CHANNEL: eas-cli
SLACK_COLOR: warning
SLACK_ICON: https://github.com/expo-bot.png?size=48
SLACK_TITLE: "Manual action needed: add npm tags for eas-cli@${{ env.EAS_CLI_VERSION }}"
SLACK_MESSAGE: |
Don't forget to add these tags to the npm packages. Run:
```
npm dist-tag add eas-cli@${{ env.EAS_CLI_VERSION }} latest-eas-build-staging
npm dist-tag add eas-cli@${{ env.EAS_CLI_VERSION }} latest-eas-build
```
SLACK_USERNAME: "EAS CLI CI"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_FOOTER: ""
release-changelog:
name: Update changelog and publish release
runs-on: ubuntu-latest
+9
View File
@@ -8,6 +8,14 @@ This is the log of notable changes to EAS CLI and related packages.
### 🎉 New features
### 🐛 Bug fixes
### 🧹 Chores
## [21.5.0](https://github.com/expo/eas-cli/releases/tag/v21.5.0) - 2026-08-03
### 🎉 New features
- [eas-cli] Add `eas submit:list`, `eas submit:view`, `eas submit:retry`, `eas submit:cancel`, and `eas submit:status` commands; list and view include the runtime version and fingerprint of the submitted build, and status shows the live App Store version and TestFlight build states cross-referenced with EAS submissions (Google Play app status is not available through EAS yet). ([#4134](https://github.com/expo/eas-cli/pull/4134) by [@brentvatne](https://github.com/brentvatne))
- [eas-build-job] Add optional `ssh` field on build/job payloads. ([#4083](https://github.com/expo/eas-cli/pull/4083) by [@gwdp](https://github.com/gwdp))
- [eas-build-job] Add an `SSH_SESSION` build phase for upcoming worker SSH support. ([#4029](https://github.com/expo/eas-cli/pull/4029) by [@gwdp](https://github.com/gwdp))
@@ -23,6 +31,7 @@ This is the log of notable changes to EAS CLI and related packages.
- [eas-cli] clean up error handling in local builds. ([#4105](https://github.com/expo/eas-cli/pull/4105) by [@douglowder](https://github.com/douglowder))
- [build-tools] Install ffmpeg when it is missing so Argent screen recording works in EAS Simulator sessions. ([#4110](https://github.com/expo/eas-cli/pull/4110) by [@szdziedzic](https://github.com/szdziedzic))
- [eas-cli] Stop simulator job runs when `eas simulator:start` is canceled before the session is ready. ([#4113](https://github.com/expo/eas-cli/pull/4113) by [@sjchmiela](https://github.com/sjchmiela))
- [build-tools] Pin the default `agent-device` version for remote sessions instead of installing `latest`. ([#4142](https://github.com/expo/eas-cli/pull/4142) by [@gwdp](https://github.com/gwdp))
### 🧹 Chores
+1 -1
View File
@@ -1,5 +1,5 @@
{
"npmClient": "yarn",
"version": "21.5.0",
"version": "21.5.1",
"$schema": "node_modules/lerna/schemas/lerna-schema.json"
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@expo/build-tools",
"version": "21.5.0",
"version": "21.5.1",
"bugs": "https://github.com/expo/eas-cli/issues",
"license": "BUSL-1.1",
"author": "Expo <[email protected]>",
@@ -31,6 +31,7 @@ import {
} from '../utils/remoteDeviceRunSession';
const AGENT_DEVICE_PACKAGE_NAME = 'agent-device';
export const DEFAULT_AGENT_DEVICE_VERSION = '0.20.3';
const AGENT_DEVICE_REPO_URL = 'https://github.com/callstack/agent-device.git';
const SRC_DIR = '/tmp/agent-device-src';
const AGENT_DEVICE_STATE_DIR = path.join(os.homedir(), '.agent-device');
@@ -65,10 +66,11 @@ export function createStartAgentDeviceRemoteSessionBuildFunction(
const ngrokTunnelDomain = getNgrokTunnelDomainOrThrow(env);
const ngrokAuthtoken = getNgrokAuthtokenOrThrow(env);
const packageVersion = inputs.package_version.value as string | undefined;
const packageVersion =
(inputs.package_version.value as string | undefined) ?? DEFAULT_AGENT_DEVICE_VERSION;
const { runtimePlatform } = global;
logger.info(
`Starting agent-device remote session (version: ${packageVersion ?? 'latest'}, runtime: ${runtimePlatform}).`
`Starting agent-device remote session (version: ${packageVersion}, runtime: ${runtimePlatform}).`
);
if (runtimePlatform === BuildRuntimePlatform.DARWIN) {
@@ -186,7 +188,7 @@ async function startAgentDeviceDaemonAsync({
env,
logger,
}: {
packageVersion: string | undefined;
packageVersion: string;
env: BuildStepEnv;
logger: bunyan;
}): Promise<DetachedProcessHandle> {
@@ -223,7 +225,7 @@ async function startAgentDeviceDaemonAsync({
},
extras: {
packageSpec,
packageVersion: packageVersion ?? 'latest',
packageVersion,
bunVersion,
bunInstallConfigured: Boolean(env.BUN_INSTALL?.trim()),
},
@@ -241,15 +243,11 @@ async function startAgentDeviceDaemonFromGitAsync({
env,
logger,
}: {
packageVersion: string | undefined;
packageVersion: string;
env: BuildStepEnv;
logger: bunyan;
}): Promise<DetachedProcessHandle> {
logger.info(
packageVersion
? `Cloning agent-device @ v${packageVersion} into ${SRC_DIR}.`
: `Cloning agent-device (latest) into ${SRC_DIR}.`
);
logger.info(`Cloning agent-device @ v${packageVersion} into ${SRC_DIR}.`);
await cloneAgentDeviceAsync({ packageVersion, env, logger });
logger.info('Installing agent-device dependencies.');
@@ -273,11 +271,11 @@ async function cloneAgentDeviceAsync({
env,
logger,
}: {
packageVersion: string | undefined;
packageVersion: string;
env: BuildStepEnv;
logger: bunyan;
}): Promise<void> {
const branchArgs = packageVersion ? ['--branch', `v${packageVersion}`] : [];
const branchArgs = ['--branch', `v${packageVersion}`];
await spawn('git', ['clone', '--depth', '1', ...branchArgs, AGENT_DEVICE_REPO_URL, SRC_DIR], {
env,
logger,
@@ -317,8 +315,8 @@ async function getBunVersionForDiagnosticsAsync(env: BuildStepEnv): Promise<stri
}
}
function createAgentDevicePackageSpec(packageVersion: string | undefined): string {
const versionSpec = packageVersion ? packageVersion.replace(/^v(?=\d)/, '') : 'latest';
function createAgentDevicePackageSpec(packageVersion: string): string {
const versionSpec = packageVersion.replace(/^v(?=\d)/, '');
return `${AGENT_DEVICE_PACKAGE_NAME}@${versionSpec}`;
}
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "eas-cli-local-build-plugin",
"version": "21.5.0",
"version": "21.5.1",
"description": "Tool for running EAS compatible builds on a local machine.",
"bugs": "https://github.com/expo/eas-cli/issues",
"license": "BUSL-1.1",
@@ -26,7 +26,7 @@
"clean": "rimraf node_modules dist coverage \"*.tsbuildinfo\""
},
"dependencies": {
"@expo/build-tools": "21.5.0",
"@expo/build-tools": "21.5.1",
"@expo/eas-build-job": "21.5.0",
"@expo/logger": "21.0.0",
"@expo/spawn-async": "^1.7.2",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@expo/worker",
"version": "21.5.0",
"version": "21.5.1",
"private": true,
"scripts": {
"start": "yarn watch",
@@ -19,7 +19,7 @@
},
"dependencies": {
"@babel/core": "7.24.7",
"@expo/build-tools": "21.5.0",
"@expo/build-tools": "21.5.1",
"@expo/config-plugins": "55.0.7",
"@expo/config-types": "55.0.5",
"@expo/downloader": "21.0.0",
Generated
+3 -3
View File
@@ -2291,7 +2291,7 @@ __metadata:
languageName: node
linkType: hard
"@expo/build-tools@npm:21.5.0, @expo/build-tools@workspace:packages/build-tools":
"@expo/build-tools@npm:21.5.1, @expo/build-tools@workspace:packages/build-tools":
version: 0.0.0-use.local
resolution: "@expo/build-tools@workspace:packages/build-tools"
dependencies:
@@ -2957,7 +2957,7 @@ __metadata:
resolution: "@expo/worker@workspace:packages/worker"
dependencies:
"@babel/core": "npm:7.24.7"
"@expo/build-tools": "npm:21.5.0"
"@expo/build-tools": "npm:21.5.1"
"@expo/config-plugins": "npm:55.0.7"
"@expo/config-types": "npm:55.0.5"
"@expo/downloader": "npm:21.0.0"
@@ -10294,7 +10294,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "eas-cli-local-build-plugin@workspace:packages/local-build-plugin"
dependencies:
"@expo/build-tools": "npm:21.5.0"
"@expo/build-tools": "npm:21.5.1"
"@expo/eas-build-job": "npm:21.5.0"
"@expo/logger": "npm:21.0.0"
"@expo/spawn-async": "npm:^1.7.2"