Skip to content

[cli] implements vc deploy --logs and vc inspect --logs#11672

Merged
feugy merged 12 commits intomainfrom
damien/log-389-improve-vc-logs-build
Jul 3, 2024
Merged

[cli] implements vc deploy --logs and vc inspect --logs#11672
feugy merged 12 commits intomainfrom
damien/log-389-improve-vc-logs-build

Conversation

@feugy
Copy link
Copy Markdown
Member

@feugy feugy commented May 30, 2024

🧐 What's in there?

This is the first part of distinguishing build logs from runtime logs.
The proposal is to provide:

  • vc deploy --logs: in addition to deploying the application, it should tail and display the build logs until the build finishes.
  • vc inspect --logs: instead of retuning a summary of the builds, it reads the build logs
  • vc inspect --logs --wait: when the build is in progress, tails the build logs until the configured timeout (3m by default), or display all available logs when the build is finished.
  • vc logs: read the runtime logs (not part of this PR, breaking change)

🧪 How to test?

Given a local application location in xyz folder, already linked to a vercel project:

  • pnpm -F vercel dev deploy --cwd xyz --logs to deploy and see build logs
  • pnpm -F vercel dev deploy --cwd xyz to deploy and see spinners instead
  • pnpm -F vercel dev inspect --cwd xyz dpl_ID/url --logs to see build logs of an existing deployment
  • pnpm -F vercel dev inspect --cwd xyz dpl_ID/url to see an existing deployment details
  • pnpm -F vercel dev inspect --cwd xyz dpl_ID/url --logs --wait to see build logs of an existing deployment (better if in progress)
  • pnpm -F vercel dev inspect --cwd xyz dpl_ID/url --logs --wait --timeout 5s to see build logs of an existing deployment (better if in progress) and bail after 5 seconds

Unit tests added:

  • inspect command: pnpm -F vercel exec vitest run /inspect.test
  • deploy command: pnpm -F vercel exec vitest run /deploy.test

❗ Notes to reviewers

It's better to omit whitespace changes when reviewing packages/cli/src/util/events.ts since most of the code was enclosed in a try-catch.

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented May 30, 2024

🦋 Changeset detected

Latest commit: 3f3b503

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
vercel Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

const eventsRes = await client.fetch(eventsUrl, {
json: false,
signal: abortController?.signal,
});
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

client.fetch() supports node-retry options, so this code may be refactored and not being wrapped in a retry call.

client,
deployment.id,
{
mode: 'logs',
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

We don't use 'deploy' mode here (which triggers its own polling), because it's actually not working.
The API does not return the special "events" which are meant to controller polling.

I highly doubt it's working, and I would suggest we remove this mode parameter and the related code.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we use the deploy anywhere?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Not to my knowledge.

client,
deployment.id,
{
mode: 'logs',
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we use the deploy anywhere?

Comment on lines +238 to 243
function exitCode(state: Deployment['readyState']) {
if (state === 'ERROR' || state === 'CANCELED') {
return 1;
}
return 0;
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Shouldn't this be returning 0 all the time if you don't want to change how status code is returned?

return chalk.gray('UNKNOWN');
function exitCode(state: Deployment['readyState']) {
if (state === 'ERROR' || state === 'CANCELED') {
return 1;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is a change, but I think it makes sense.

@feugy feugy merged commit 06db035 into main Jul 3, 2024
@feugy feugy deleted the damien/log-389-improve-vc-logs-build branch July 3, 2024 04:56
EndangeredMassa pushed a commit that referenced this pull request Jul 3, 2024
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @vercel/build-utils@8.3.0

### Minor Changes

- Adds the ability for builders to define a `diagnostics` step that is
called after the build operation is done.
([#11653](#11653))
    Implements the diagnostics step in the `next` builder.

### Patch Changes

- Add resolved node version range to warning message
([#11742](#11742))

## vercel@34.3.0

### Minor Changes

- introduce --logs flag for deploy and inspect command to display build
logs ([#11672](#11672))

- Adds the ability for builders to define a `diagnostics` step that is
called after the build operation is done.
([#11653](#11653))
    Implements the diagnostics step in the `next` builder.

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5),
[`77836e3c3`](77836e3),
[`11d0a32d8`](11d0a32)]:
    -   @vercel/build-utils@8.3.0
    -   @vercel/next@4.3.0
    -   @vercel/remix-builder@2.1.9
    -   @vercel/redwood@2.1.0
    -   @vercel/node@3.2.1
    -   @vercel/static-build@2.5.12

## @vercel/next@4.3.0

### Minor Changes

- Adds the ability for builders to define a `diagnostics` step that is
called after the build operation is done.
([#11653](#11653))
    Implements the diagnostics step in the `next` builder.

## @vercel/redwood@2.1.0

### Minor Changes

- Add support for API endpoint configuration via `export const config`
syntax ([#11776](#11776))

## @vercel/client@13.2.10

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5)]:
    -   @vercel/build-utils@8.3.0

## @vercel/frameworks@3.0.3

### Patch Changes

- Update SvelteKit v1 devCommand
([#11494](#11494))

## @vercel/fs-detectors@5.2.5

### Patch Changes

- Updated dependencies
\[[`1484df7aa`](1484df7)]:
    -   @vercel/frameworks@3.0.3

## @vercel/gatsby-plugin-vercel-builder@2.0.34

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5)]:
    -   @vercel/build-utils@8.3.0

## @vercel/node@3.2.1

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5)]:
    -   @vercel/build-utils@8.3.0

## @vercel/remix-builder@2.1.9

### Patch Changes

- Update `@remix-run/dev` fork to v2.10.0
([#11771](#11771))

## @vercel/static-build@2.5.12

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/gatsby-plugin-vercel-builder@2.0.34

## @vercel-internals/types@1.0.39

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5)]:
    -   @vercel/build-utils@8.3.0

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
feugy pushed a commit that referenced this pull request Jul 4, 2024
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @vercel/build-utils@8.3.0

### Minor Changes

- Adds the ability for builders to define a `diagnostics` step that is
called after the build operation is done.
([#11653](#11653))
    Implements the diagnostics step in the `next` builder.

### Patch Changes

- Add resolved node version range to warning message
([#11742](#11742))

## vercel@34.3.0

### Minor Changes

- introduce --logs flag for deploy and inspect command to display build
logs ([#11672](#11672))

- Adds the ability for builders to define a `diagnostics` step that is
called after the build operation is done.
([#11653](#11653))
    Implements the diagnostics step in the `next` builder.

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5),
[`77836e3c3`](77836e3),
[`11d0a32d8`](11d0a32)]:
    -   @vercel/build-utils@8.3.0
    -   @vercel/next@4.3.0
    -   @vercel/remix-builder@2.1.9
    -   @vercel/redwood@2.1.0
    -   @vercel/node@3.2.1
    -   @vercel/static-build@2.5.12

## @vercel/next@4.3.0

### Minor Changes

- Adds the ability for builders to define a `diagnostics` step that is
called after the build operation is done.
([#11653](#11653))
    Implements the diagnostics step in the `next` builder.

## @vercel/redwood@2.1.0

### Minor Changes

- Add support for API endpoint configuration via `export const config`
syntax ([#11776](#11776))

## @vercel/client@13.2.10

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5)]:
    -   @vercel/build-utils@8.3.0

## @vercel/frameworks@3.0.3

### Patch Changes

- Update SvelteKit v1 devCommand
([#11494](#11494))

## @vercel/fs-detectors@5.2.5

### Patch Changes

- Updated dependencies
\[[`1484df7aa`](1484df7)]:
    -   @vercel/frameworks@3.0.3

## @vercel/gatsby-plugin-vercel-builder@2.0.34

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5)]:
    -   @vercel/build-utils@8.3.0

## @vercel/node@3.2.1

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5)]:
    -   @vercel/build-utils@8.3.0

## @vercel/remix-builder@2.1.9

### Patch Changes

- Update `@remix-run/dev` fork to v2.10.0
([#11771](#11771))

## @vercel/static-build@2.5.12

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/gatsby-plugin-vercel-builder@2.0.34

## @vercel-internals/types@1.0.39

### Patch Changes

- Updated dependencies
\[[`394eddb2a`](394eddb),
[`b9d18c583`](b9d18c5)]:
    -   @vercel/build-utils@8.3.0

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants