Support for parameterised configurations in `.gitpod.yml`
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 13.8k
- Forks
- 1.4k
- Avg merge
- 17h 58m
- Merged PRs (30d)
- 5
Description
Current Approach
Currently, the way that gitpod works is via one single declarative syntax for a project set up, but, this approach doesn't work well for scenarios where you have (potentially) many different permutations of a given project or setup (e.g. mono-repo's or more advanced projects). Currently, the best way of doing this is via URL parameters or via environment variables that alter the project configuration, in combination with custom scripts and/or a makefile.
Proposal
Allow a given project to specify a number of input parameters (type definitions and optionality) for a project configuration. This feature would then allow the creation of any number of different permutations of a given project (e.g. a matrix), and a project or workspace. Each permutation of the matrix is then treated as it's own "project" configuration e.g. it has it's own pre-build and allows custom start tasks to be configured. A good real example of this is the DrupalPod project, which uses a Chrome extension to specify input parameters, that are passed via URL, and then consumed in scripts to create different set-ups of the project.
Examples
Example of this within DrupalPod, which uses a browser extension form [1].
Similar feature in other products
- https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputs
- https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix
- https://www.serverless.com/framework/docs/guides/parameters
- https://docs.travis-ci.com/user/build-matrix/
- https://circleci.com/blog/circleci-matrix-jobs/
- https://0-8-0.docs.drone.io/matrix-builds/
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the proposed .gitpod.yml configuration model and the linked DrupalPod and matrix examples. Identify the configuration, workspace, pre-build, and start-task entry points before defining the scope. Done means parameter types and optionality can produce distinct project configurations with their own pre-builds and start tasks, backed by tests for the supported permutations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- yaml
- Domain
- developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100