Skip to content

chore: remove leftovers, pin actions - #469

Merged
uniqueg merged 5 commits into
devfrom
chore/leftovers-pins
Oct 27, 2026
Merged

uniqueg merged 5 commits into
devfrom
chore/leftovers-pins

Conversation

@uniqueg

@uniqueg uniqueg commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Summary

First of four stacked pull requests for #464 (merge in order: this one, then Node.js 22/24, trusted publishing, CI gate). Nothing changes in the maintainer flow: direct pushes to main and a v* tag to release keep working.

  • .dockerignore (allow list) for the docs image: only apps/, packages/, scripts/, package.json, package-lock.json and turbo.json reach the build context; .env* (except .env.example), node_modules and build output are excluded within them. The context shrinks to 3.8 MB.
  • Changesets leftovers removed: .github/workflows/version.yml (changesets/action without publish, which only added a Release check to every commit on main), .changeset/README.md, the root CHANGELOG.md stub. changeset publish (npm run release) and .changeset/config.json stay.
  • Actions pinned to commit SHAs on current majors: checkout v7.0.1, setup-node v7.1.0, cache v6.1.0, action-semantic-pull-request v6.1.1, ssh-agent v0.10.0, github-push-action v1.3.0 (identical to its master, which was used unpinned with the deploy key). Dependabot keeps the pins current (.github/dependabot.yml, GitHub Actions only, monthly, one grouped PR titled ci: …).
  • Workflow fixes: the node_modules caches keyed on a nonexistent package.lock (and their ::set-output) are replaced by the npm cache of setup-node in CI; the release workflow uses no dependency cache (cache poisoning; packageManager would otherwise turn it on). The force-with-lease input of the push action is dropped: the action only knows force_with_lease, so it was never in effect (no behaviour change).

Closes #463
Closes #465

Verification

  • npm ci, npm run lint (includes the build): pass (Node.js 22, locally).
  • docker build .: passes. With .env.local files at the root and in apps/documentation, the builder stage (--target builder) contains neither, but keeps apps/documentation/.env.example.
  • Workflow YAML parses; action SHAs checked against their tags with git ls-remote.
  • Reviewed by the adversarial and quality reviewer subagents (2 rounds); findings fixed (Dependabot title prefix, comments).
  • CI: Semantic PR title, Detect unresolved merge conflicts and Linting checks pass. Test checks fail for reasons that are not caused by this PR (they fail on Dependabot PRs too):
    • ubuntu-latest is now Ubuntu 26.04, where Playwright 1.56 can't install its browsers. Fixed here (see Unrelated fixes).
    • Packages without test files (e.g. @elixir-cloud/wes) fail with Could not find any test files with pattern(s): src/**/**/*.test.ts. feat: add surface, font and dark mode controls #446 fixes the test scripts; once it is merged, update this branch and the tests should run.
  • Vercel fails on this PR as on others; docs hosting is being moved and is out of scope.
  • Tests did not run locally: Playwright browser downloads fail behind the sandbox proxy.

Unrelated fixes

  • ci: run tests on Ubuntu 24.04: pins the test job's runner until Playwright is upgraded.

Declined review findings

  • Add !.npmrc to the .dockerignore allow list: turbo prune --docker never copied the root .npmrc into out/, its only setting (auto-install-peers) is ignored by npm, and the image builds.
  • A Dependabot PR with a single update may get a title over 50 characters: accepted; the grouped title (ci: bump the github-actions group with N updates) fits.

Maintainer steps (after merge)

  • Uninstall the changeset-bot GitHub App or remove this repository from it (org owner: Organization settings → GitHub Apps → changeset-bot → Configure → Repository access). It posts the "No Changeset found" comments.

🤖 Generated with Claude Code

Summary by Sourcery

Clean up obsolete release artifacts, harden GitHub Actions dependencies, and improve CI and Docker build reliability.

Bug Fixes:

  • Replace invalid dependency cache keys and deprecated output handling with reliable npm caching in CI.
  • Pin the test workflow to Ubuntu 24.04 to maintain Playwright browser installation compatibility.

Enhancements:

  • Remove obsolete Changesets files and the unused version workflow.
  • Pin GitHub Actions to immutable commit SHAs and configure monthly grouped Dependabot updates.
  • Reduce Docker build context by excluding unnecessary files and environment-specific data.
  • Disable dependency caching in release jobs and remove the ineffective push-action option.

CI:

  • Update pull request evaluation and publishing workflows to use pinned actions and safer dependency-cache settings.

uniqueg and others added 4 commits October 26, 2026 15:20
Remove the changesets versioning workflow (changesets/action without a
publish input, which only added a Release check to every commit on
main), the generated .changeset/README.md and the root CHANGELOG.md
stub. changeset publish stays the publish command.

Refs #465

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The builder stage of the docs image copies the whole build context.
Send only what the build needs (allow list: workspaces, build scripts,
root manifests), so that local .env* files and other local files never
reach the image, and drop dependencies and build output within.

Closes #463

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pin every action to a full commit SHA on its current major version
(checkout v7, setup-node v7, cache v6, semantic PR title v6, ssh-agent
v0.10, push action v1.3.0 instead of master), with Dependabot keeping
the pins up to date. Replace the node_modules caches, whose key hashed a
file that doesn't exist and which used ::set-output, by the npm cache
of setup-node in CI; releases use no dependency cache. Drop the
force-with-lease input of the push action, which doesn't exist (the
input is force_with_lease) and so never had an effect.

Refs #465

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Give Dependabot pull requests a ci: prefix, so that their titles pass
the PR title check. Keep the commented-out release tests job as it was
and state the release cache comment once.

Refs #465

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
elixir-cloud-components Error Error Oct 26, 2026 3:56pm UTC

@changeset-bot

changeset-bot Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 78891fe

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

@sourcery-ai

sourcery-ai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Reviewer's Guide

This PR tightens the Docker build context, removes obsolete Changesets leftovers, hardens workflow supply-chain dependencies with SHA-pinned actions and Dependabot maintenance, and fixes CI/release caching while pinning tests to Ubuntu 24.04 for current Playwright compatibility.

File-Level Changes

Change Details Files
Constrain the documentation Docker build context and remove obsolete Changesets artifacts.
  • Add an allow-list .dockerignore that excludes environment files, dependencies, and build output while retaining required workspace sources.
  • Delete the unused Changesets workflow, README, and root changelog stub while retaining release configuration and publishing support.
.dockerignore
.changeset/README.md
.github/workflows/version.yml
CHANGELOG.md
Pin GitHub Actions to audited commit SHAs and configure automated maintenance of those pins.
  • Replace floating or major-version action references with SHA-pinned current releases across PR, CI, and publish workflows.
  • Add monthly grouped Dependabot updates for GitHub Actions with Conventional Commit-compatible titles.
.github/dependabot.yml
.github/workflows/pr_evaluation.yml
.github/workflows/publish.yml
Correct CI and release dependency caching and remove ineffective workflow configuration.
  • Replace broken node_modules caches and deprecated output commands with setup-node npm caching in CI.
  • Disable dependency caching in release jobs to avoid cache poisoning and preserve reproducible publishing.
  • Remove the ineffective force-with-lease input from the push action.
.github/workflows/pr_evaluation.yml
.github/workflows/publish.yml
Temporarily pin the test runner to Ubuntu 24.04 for Playwright compatibility.
  • Run the test matrix on Ubuntu 24.04 instead of the moving ubuntu-latest image until Playwright supports the newer runner.
.github/workflows/pr_evaluation.yml

Assessment against linked issues

Issue Objective Addressed Explanation
#463 Add a docs-image .dockerignore that prevents local .env* files (except .env.example) from reaching the Docker build context, and excludes node_modules and other local or generated files. ✅
#465 Remove the unused Changesets workflow and dead boilerplate files while retaining the release command (changeset publish). ✅
#465 Pin every workflow action to a full commit SHA with a version comment, and configure Dependabot to propose updates for GitHub Actions. ✅
#465 Replace the broken node_modules caches and deprecated ::set-output usage with setup-node's npm cache where appropriate. ✅

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

ubuntu-latest now is Ubuntu 26.04, on which Playwright 1.56 can't
install its browsers, so every test job fails (unrelated to the other
changes). Pin the test job to ubuntu-24.04 until Playwright is
upgraded.

Refs #465

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@sourcery-ai sourcery-ai Bot left a comment

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.

Hey - I've reviewed your changes and they look great!

Sourcery assessment

Needs a human reviewer. The release workflow now runs pinned action revisions while holding deployment and npm credentials; if a selected revision behaves incorrectly, it could push an unintended commit or publish a bad package. Reverting restores the workflow but cannot retract packages already published or commits already pushed.


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

@uniqueg
uniqueg merged commit b901fff into dev Oct 27, 2026
20 of 24 checks passed
@uniqueg
uniqueg deleted the chore/leftovers-pins branch October 27, 2026 01:54

This branch had an error being deployed

1 failed deployment
Preview — 78891fef Deployed Oct 26, 2026 by vercel[bot]
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.

chore: remove leftovers and pin actions fix: add a .dockerignore for the docs image

1 participant