Open felangel opened 3 days ago
Hi, the release.setCommits.auto
option only works if you are inside a git repository. @szokeasaurusrex can we improve the error message?
@lforst I'm pretty sure we're just printing the error generated by the library here. We can likely format it better
Hi, the
release.setCommits.auto
option only works if you are inside a git repository. @szokeasaurusrex can we improve the error message?
This used to work in the context of a docker build and suddenly stopped working after we renamed the repository. See https://github.com/kentcdodds/kentcdodds.com/blob/34014471facce523e1401299431ac4a5d0bd1943/Dockerfile#L57 for an open source example of a very similar setup.
We also tried setting auto to false and manually specifying the commit but it also fails with the same error.
@felangel I don't entirely see how the kentcdodds repo is similar. They're not collecting commit data for Sentry as far as I can see. My guess is that you used to copy your .git
folder into the docker vm, and now you're not doing that anymore.
@felangel I don't entirely see how the kentcdodds repo is similar. They're not collecting commit data for Sentry as far as I can see. My guess is that you used to copy your
.git
folder into the docker vm, and now you're not doing that anymore.
They’re also using the vite plugin and specifying setCommits to auto: https://github.com/kentcdodds/kentcdodds.com/blob/34014471facce523e1401299431ac4a5d0bd1943/vite.config.ts#L49
Our Dockerfile hasn’t changed unfortunately but I’ll take a closer look at the container in a few minutes. I can also try to make a minimal reproduction sample later today, thanks!
@lforst the likely culprit seems to be the fact that we moved to a monorepo with multiple apps which means the directory we build from no longer contains a .git
folder. Do you have any recommendations around how to set commits from a monorepo using Docker? Thanks!
@felangel The vite plugin needs to run inside a git folder to be able to associate commits. It is an abstraction around Sentry CLI.
You can work around this restriction by using Sentry CLI and associating the commits after the fact: https://docs.sentry.io/product/releases/associate-commits/
CLI Version
2.36.1
Operating System and Architecture
Operating System Version
debian:12
Link to reproduction repository
No response
CLI Command
sentry-cli releases set-commits --auto --ignore-missing
Exact Reproduction Steps
apps/my-app
)npx @sentry/wizard@latest -i remix --url https://sentry.io
Dockerfile
RUN apt-get update && apt-get install -y fuse3 openssl ca-certificates python3 make g++
ENV NODE_ENV=production ENV SENTRY_ORG="my-org" ENV SENTRY_PROJECT="my-project" ENV SENTRY_LOG_LEVEL="debug"
WORKDIR /app ADD package.json .
FROM base AS deps ADD package-lock.json . RUN npm install --production=false
FROM deps AS build
ARG COMMIT_SHA ENV COMMIT_SHA=$COMMIT_SHA
ADD . .
RUN --mount=type=secret,id=SENTRY_AUTH_TOKEN \ SENTRY_AUTH_TOKEN=$(cat /run/secrets/SENTRY_AUTH_TOKEN) npm run build
FROM deps AS prod-deps RUN npm prune --production
FROM base AS prod COPY --from=prod-deps /app/node_modules ./node_modules COPY --from=build /app/public ./public COPY --from=build /app/build ./build
EXPOSE 3000 CMD ["npm", "start"]
package.json
Expected Results
I expect the build to succeed and successfully upload source maps and commit information to sentry.
Actual Results
Build fails with error:
Additional Context
The build succeeds if we remove
setCommits
from the build step:Logs