Skip to content

Conversation

@BYK
Copy link
Member

@BYK BYK commented Jan 9, 2026

Summary

This PR migrates from the deprecated action-prepare-release to the new Craft GitHub Actions.

Changes

  • Migrated .github/workflows/release.yml to Craft reusable workflow

Documentation

See https://getsentry.github.io/craft/github-actions/ for more information.

This PR migrates from the deprecated action-prepare-release to the new
Craft GitHub Actions (reusable workflow or composite action).

Changes:
- Migrate .github/workflows/release.yml to Craft reusable workflow
@github-actions
Copy link
Contributor

github-actions bot commented Jan 9, 2026

Semver Impact of This PR

🟢 Patch (bug fixes)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


New Features ✨

  • (core) Expose MAX_EVENT_SIZE_BYTES constant in SentryOptions by SudoPlz in #4962
  • (metrics) Trace Metrics by adinauer in #5026

Bug Fixes 🐛

  • (cache) Do not throw NPE when reading ANR marker by romtsn in #4979
  • (device) Fix ANR when collecting device context by romtsn in #4970

Build / dependencies / internal 🔧

Deps

  • Bump codecov/test-results-action from 1.1.1 to 1.2.1 by dependabot in #4976
  • Bump codecov/codecov-action from 5.5.1 to 5.5.2 by dependabot in #4977
  • Bump github/codeql-action from 4.31.5 to 4.31.8 by dependabot in #4967
  • Bump JamesIves/github-pages-deploy-action from 4.7.4 to 4.7.6 by dependabot in #4978
  • Bump actions/download-artifact from 6 to 7 by dependabot in #4966

Other

  • (release) Switch from action-prepare-release to Craft by BYK in #5014

Other

  • Bump OpenTelemetry to 2.23 by adinauer in #4975
  • Discard envelopes on 4xx and 5xx response by adinauer in #4950

🤖 This preview updates automatically when you update the PR.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 9, 2026

Performance metrics 🚀

  Plain With Sentry Diff
Startup time 318.02 ms 367.29 ms 49.26 ms
Size 1.58 MiB 2.20 MiB 635.29 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
abfcc92 309.54 ms 380.32 ms 70.78 ms
fcec2f2 357.47 ms 447.32 ms 89.85 ms
bbc35bb 298.53 ms 372.17 ms 73.64 ms
ee747ae 357.79 ms 421.84 ms 64.05 ms
d15471f 315.20 ms 370.22 ms 55.02 ms
b77456b 393.26 ms 441.10 ms 47.84 ms
d15471f 310.26 ms 377.04 ms 66.78 ms
ee747ae 386.94 ms 431.43 ms 44.49 ms
fc5ccaf 279.11 ms 353.34 ms 74.23 ms
d15471f 286.65 ms 314.68 ms 28.03 ms

App size

Revision Plain With Sentry Diff
abfcc92 1.58 MiB 2.13 MiB 557.31 KiB
fcec2f2 1.58 MiB 2.12 MiB 551.50 KiB
bbc35bb 1.58 MiB 2.12 MiB 553.01 KiB
ee747ae 1.58 MiB 2.10 MiB 530.95 KiB
d15471f 1.58 MiB 2.13 MiB 559.54 KiB
b77456b 1.58 MiB 2.12 MiB 548.11 KiB
d15471f 1.58 MiB 2.13 MiB 559.54 KiB
ee747ae 1.58 MiB 2.10 MiB 530.95 KiB
fc5ccaf 1.58 MiB 2.13 MiB 557.54 KiB
d15471f 1.58 MiB 2.13 MiB 559.54 KiB

Previous results on branch: ci/migrate-to-craft-action

Startup times

Revision Plain With Sentry Diff
096e94b 425.78 ms 524.83 ms 99.05 ms
33b3380 297.58 ms 360.82 ms 63.24 ms
191040f 355.24 ms 437.35 ms 82.10 ms
197db59 362.33 ms 478.15 ms 115.81 ms
75996c8 300.29 ms 363.87 ms 63.58 ms
56d0c00 323.38 ms 372.06 ms 48.68 ms
9f55129 346.65 ms 424.39 ms 77.73 ms
bc797ff 340.28 ms 391.70 ms 51.42 ms
b302000 378.71 ms 443.14 ms 64.43 ms

App size

Revision Plain With Sentry Diff
096e94b 1.58 MiB 2.20 MiB 633.90 KiB
33b3380 1.58 MiB 2.20 MiB 633.90 KiB
191040f 1.58 MiB 2.20 MiB 633.89 KiB
197db59 1.58 MiB 2.20 MiB 633.89 KiB
75996c8 1.58 MiB 2.20 MiB 633.88 KiB
56d0c00 1.58 MiB 2.20 MiB 633.88 KiB
9f55129 1.58 MiB 2.20 MiB 633.89 KiB
bc797ff 1.58 MiB 2.20 MiB 633.89 KiB
b302000 1.58 MiB 2.20 MiB 633.89 KiB

The previous migration incorrectly removed the GitHub App token
authentication step. This commit restores it by switching to the
composite action pattern which preserves the auth flow.
Comment on lines 5 to +7
version:
description: Version to release
required: true
description: Version to release (or "auto")
required: false
Copy link

Choose a reason for hiding this comment

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

Bug: The optional version input defaults to an empty string, but the downstream craft action might expect the literal string 'auto' for automatic versioning, causing potential failure.
Severity: HIGH

Suggested Fix

To remove ambiguity, explicitly set the default value of the version input to 'auto'. This ensures that if a user does not provide a version, the workflow will correctly trigger the automatic versioning feature of the craft action as intended. Update the input definition to version: { description: 'Version to release (or ''auto'')', required: false, default: 'auto' }.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: .github/workflows/release.yml#L5-L7

Potential issue: The `release.yml` workflow introduces an optional `version` input for
the `workflow_dispatch` trigger. If a user does not provide a value, GitHub Actions will
pass an empty string `""` to the `getsentry/action-craft` action. The intended behavior
for automatic versioning is to use the string `'auto'`. It is unclear whether the
`craft` action correctly interprets an empty string as a request for automatic version
detection or if it specifically requires the literal string `'auto'`. This ambiguity
could lead to a failure in the release process if the action does not handle the empty
string case as expected.

Did we get this right? 👍 / 👎 to inform future reviews.

Comment on lines +37 to 40
uses: getsentry/craft@c6e2f04939b6ee67030588afbb5af76b127d8203 # v2
env:
GITHUB_TOKEN: ${{ steps.token.outputs.token }}
with:
Copy link

Choose a reason for hiding this comment

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

Bug: The release workflow passes an empty string to the craft action when no version is provided, instead of defaulting to 'auto' as the description implies.
Severity: HIGH

Suggested Fix

Modify the version parameter to use a default value when the input is not provided. Change version: ${{ github.event.inputs.version }} to version: ${{ github.event.inputs.version || 'auto' }}. This ensures that the craft action receives 'auto' when no version is specified.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: .github/workflows/release.yml#L37-L40

Potential issue: The `release.yml` workflow defines an optional `version` input with a
description suggesting it defaults to `'auto'`. However, when a user triggers the
workflow without providing a version, the `${{ github.event.inputs.version }}`
expression evaluates to an empty string. This empty string is then passed to the
`getsentry/craft` action, which expects either a specific version or the literal string
`'auto'`. Passing an empty string will likely cause the release process to fail because
the action does not know how to interpret it.

Did we get this right? 👍 / 👎 to inform future reviews.

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.

2 participants