feat(setup-openscad): make action reusable across repositories#273
feat(setup-openscad): make action reusable across repositories#273kellervater merged 2 commits intomainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a reusable composite GitHub Action to set up OpenSCAD via scadm, updates CI workflows in this repo to use the action, and extends release-please configuration to version the action independently.
Changes:
- Added
.github/actions/setup-openscadcomposite action (Python + system deps + caching +scadm install) and documented cross-repo usage. - Updated existing CI workflows to use the new action instead of inline install steps.
- Added release-please package config/manifest entry for independent action versioning; adjusted dev session hook Windows venv detection.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Documents the new Setup OpenSCAD action under developer tooling. |
| .github/workflows/validate-models.yml | Switches model validation workflow to use the composite action. |
| .github/workflows/pre-commit.yml | Switches pre-commit workflow to use the composite action. |
| .github/pull_request_template.md | Adds a PR template structure (What/Why/How). |
| .github/hooks/session-setup.sh | Fixes Windows venv path detection by checking .venv/Scripts. |
| .github/copilot-instructions.md | Updates mandatory workflow steps for code review and PR creation. |
| .github/config/release-please-config.json | Adds a new release-please package entry for the action. |
| .github/config/.release-please-manifest.json | Adds manifest version entry for the action component. |
| .github/actions/setup-openscad/action.yml | Defines the reusable composite action (deps install, caching, scadm install). |
| .github/actions/setup-openscad/README.md | Documents action usage, inputs, and versioning. |
d05aa4c to
d82666b
Compare
There was a problem hiding this comment.
Pull request overview
Makes the .github/actions/setup-openscad composite action usable from other repositories by switching it to install scadm from PyPI and introducing independent release-please versioning for that action component, plus a small Windows robustness fix for the session hook.
Changes:
- Refactors
setup-openscadto pin/installscadmfrom PyPI, updates caching, and adds action documentation. - Adds independent release-please configuration/manifest entry for the action component.
- Adjusts CI workflows + session hook for the new action behavior (and Windows venv path detection).
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Adds a top-level pointer and usage example for the reusable action. |
| .github/workflows/validate-pr-title.yml | Extends allowed PR title “types” to include breaking variants. |
| .github/workflows/validate-models.yml | Adds a post-action editable scadm install step. |
| .github/workflows/pre-commit.yml | Adds a post-action editable scadm install step. |
| .github/hooks/session-setup.sh | Switches Windows detection from $OS to venv layout detection. |
| .github/copilot-instructions.md | Updates Copilot workflow guidance (review + PR creation steps). |
| .github/config/release-please-config.json | Adds a new independently versioned package entry for the action. |
| .github/config/.release-please-manifest.json | Adds manifest version tracking for the action package path. |
| .github/actions/setup-openscad/action.yml | Adds scadm-version input, pins PyPI install, updates cache keying. |
| .github/actions/setup-openscad/README.md | Documents usage, inputs, and versioning guidance for the action. |
There was a problem hiding this comment.
Pull request overview
Makes the setup-openscad composite GitHub Action reusable outside this repository, while preserving in-repo CI coverage for local scadm changes and adding independent release-please versioning for the action.
Changes:
- Generalized
.github/actions/setup-openscadto support installingscadmeither from a pinned PyPI version or from a local editable source (scadm-source). - Added independent release-please package config/manifest entry for
.github/actions/setup-openscad. - Updated CI workflows and repo tooling/docs (PR-title validation types, session hook Windows venv detection, docs references).
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Adds a top-level pointer to the reusable Setup OpenSCAD action and an example uses: tag. |
| .github/workflows/validate-pr-title.yml | Allows feat!/fix! PR titles for breaking-change conventional commits. |
| .github/workflows/validate-models.yml | Uses the updated action with scadm-source to test local scadm changes in CI. |
| .github/workflows/pre-commit.yml | Uses the updated action with scadm-source for consistent toolchain setup. |
| .github/hooks/session-setup.sh | Fixes Windows detection by inferring venv layout from .venv/Scripts presence. |
| .github/copilot-instructions.md | Updates the mandatory workflow steps to include review + PR creation guidance. |
| .github/config/release-please-config.json | Adds a new independently versioned release-please package for the action. |
| .github/config/.release-please-manifest.json | Adds an initial manifest entry for the action’s version tracking. |
| .github/actions/setup-openscad/action.yml | Introduces scadm-version + scadm-source, updates caching and install logic. |
| .github/actions/setup-openscad/README.md | Documents cross-repo and in-repo usage and version pinning. |
29a4df7 to
d0619a2
Compare
🤖 I have created a release *beep* *boop* --- <details><summary>homeracker: 1.9.0</summary> ## [1.9.0](homeracker-v1.8.0...homeracker-v1.9.0) (2026-03-15) ### ✨ Features * **setup-openscad:** make action reusable across repositories ([#273](#273)) ([055e784](055e784)) ### 📦 Dependencies * update pre-commit hook renovatebot/pre-commit-hooks to v43.76.1 ([#270](#270)) ([5391857](5391857)) </details> <details><summary>setup-openscad: 1.0.0</summary> ## 1.0.0 (2026-03-15) ### ✨ Features * **setup-openscad:** make action reusable across repositories ([#273](#273)) ([055e784](055e784)) ### 🔄 CI/CD * cache CI environments & add PR template ([#269](#269)) ([ca78385](ca78385)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: kellerlab-release-please[bot] <246533846+kellerlab-release-please[bot]@users.noreply.github.com>
📦 What
setup-openscadcomposite action reusable across repositoriessetup-openscad, targetsv1.0.0)$OSenv var → venv layout detection)feat!/fix!to PR title validation types💡 Why
The
setup-openscadaction was tightly coupled to this repo (localpip install -e cmd/scadm). Other repos usingscadmfrom PyPI couldn't reuse it. Independent versioning lets consumers pin to stable tags (setup-openscad-v1.0.0).Session hook broke on Windows because
$OSisn't always set in all shell contexts — checking for.venv/Scripts/directory is more reliable.🔧 How
Cross-repo usage:
Within homeracker (uses local scadm sources):
Inputs:
scadm-version(pinned PyPI version, also in cache key) andscadm-source(local editable install, overrides PyPI).feat!commit scoped to.github/actions/setup-openscad/triggersv1.0.0.