Skip to content

The build of release v8.1.1 is not reproducible #4366

@ericcornelissen

Description

@ericcornelissen

Hey, I run a project testing the reproducibility of GitHub Actions and found that v8.1.1 is not quite reproducible whereas v7.0.11..v8.1.0 were reproducible.

This can be confirmed locally using the following steps:

git clone git@github.com:peter-evans/create-pull-request.git
cd create-pull-request
git checkout v8.1.1
nvm install 24.4.0   # apologies for the non-standard tool use
nvm use 24.4.0       # apologies for the non-standard tool use
npm clean-install
npm run build
git status

which outputs

[...]
HEAD detached at v8.1.1
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   dist/index.js

no changes added to commit (use "git add" and/or "git commit -a")

The diff shows the problem to be minor, seemingly just a formatting mismatch...

             const isEventualConsistencyError = (e) => e instanceof request_error_1.RequestError &&
                 e.status === 422 &&
                 e.message.includes('Could not resolve to a node');
-            const withRetryForNewPr = (fn) => pull.created ? utils.retryWithBackoff(fn, isEventualConsistencyError) : fn();
+            const withRetryForNewPr = (fn) => pull.created
+                ? utils.retryWithBackoff(fn, isEventualConsistencyError)
+                : fn();
             // Apply milestone
             if (inputs.milestone) {
                 core.info(`Applying milestone '${inputs.milestone}'`);

However, running npm run format does not resolve the difference.

The problem appears to have been resolved on main, to test main as of writing you can use:

git clone git@github.com:peter-evans/create-pull-request.git
cd create-pull-request
git checkout eec7ab75b2f71ddc8a223341c83a67f6f774c39f
nvm install 24.4.0   # apologies for the non-standard tool use
nvm use 24.4.0       # apologies for the non-standard tool use
npm clean-install
npm run build
git status

so it appears to be a temporary issue. However, to avoid such issues in the feature I'd recommend adding a CI job/check that ensures the build output is up-to-date w.r.t. the current source code and dependencies, e.g. like actions/checkout does.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions