Skip to content

feat(setup-openscad): make action reusable across repositories#273

Merged
kellervater merged 2 commits intomainfrom
ci/cache-precommit-environments
Mar 15, 2026
Merged

feat(setup-openscad): make action reusable across repositories#273
kellervater merged 2 commits intomainfrom
ci/cache-precommit-environments

Conversation

@kellervater
Copy link
Member

@kellervater kellervater commented Mar 15, 2026

📦 What

  • Made setup-openscad composite action reusable across repositories
  • Added independent release-please versioning for the action (component: setup-openscad, targets v1.0.0)
  • Fixed session-setup hook failing on Windows ($OS env var → venv layout detection)
  • Added code review + PR creation steps to copilot mandatory workflow
  • Added feat!/fix! to PR title validation types

💡 Why

The setup-openscad action was tightly coupled to this repo (local pip install -e cmd/scadm). Other repos using scadm from PyPI couldn't reuse it. Independent versioning lets consumers pin to stable tags (setup-openscad-v1.0.0).

Session hook broke on Windows because $OS isn't always set in all shell contexts — checking for .venv/Scripts/ directory is more reliable.

🔧 How

Cross-repo usage:

- uses: kellerlabs/homeracker/.github/actions/setup-openscad@setup-openscad-v1

Within homeracker (uses local scadm sources):

- uses: ./.github/actions/setup-openscad
  with:
    scadm-source: cmd/scadm

Inputs: scadm-version (pinned PyPI version, also in cache key) and scadm-source (local editable install, overrides PyPI).

⚠️ Commits are split to avoid a major bump on the main package — only the feat! commit scoped to .github/actions/setup-openscad/ triggers v1.0.0.

Copilot AI review requested due to automatic review settings March 15, 2026 14:12
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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-openscad composite 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.

@kellervater kellervater force-pushed the ci/cache-precommit-environments branch from d05aa4c to d82666b Compare March 15, 2026 14:23
Copilot AI review requested due to automatic review settings March 15, 2026 14:27
@kellervater kellervater changed the title feat!(.github/actions/setup-openscad): make action reusable across repositories feat!(setup-openscad): make action reusable across repositories Mar 15, 2026
@kellervater kellervater changed the title feat!(setup-openscad): make action reusable across repositories feat(setup-openscad): make action reusable across repositories Mar 15, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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-openscad to pin/install scadm from 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.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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-openscad to support installing scadm either 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.

@kellervater kellervater force-pushed the ci/cache-precommit-environments branch from 29a4df7 to d0619a2 Compare March 15, 2026 15:06
@kellervater kellervater merged commit 055e784 into main Mar 15, 2026
3 checks passed
@kellervater kellervater deleted the ci/cache-precommit-environments branch March 15, 2026 15:11
kellervater pushed a commit that referenced this pull request Mar 15, 2026
🤖 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>
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