Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scicloj/devcontainer-templates
Devcontainer templates for Clojure
https://github.com/scicloj/devcontainer-templates
Last synced: 5 days ago
JSON representation
Devcontainer templates for Clojure
- Host: GitHub
- URL: https://github.com/scicloj/devcontainer-templates
- Owner: scicloj
- License: mit
- Created: 2024-05-21T09:15:28.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-05-22T11:16:02.000Z (6 months ago)
- Last Synced: 2024-05-22T11:48:45.993Z (6 months ago)
- Language: Shell
- Size: 45.9 KB
- Stars: 2
- Watchers: 7
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Clojure SciCloj Dev Container Templates:
> This repo provides a starting point and example for creating Clojure custom [Dev Container Templates](https://containers.dev/implementors/templates), hosted for free on SciCloj GitHub Container Registry.
## Repo and Template Structure
This repository contains a _collection_ of Templates. These Templates serve as simple template implementations which helps containerize the local development environment and package projects. Similar to the [`devcontainers/templates`](https://github.com/devcontainers/templates) repo, this repository has a `src` folder. Each Template has its own sub-folder, containing at least a `devcontainer-template.json` and `.devcontainer/devcontainer.json`.
```
├── src
│ ├── basecloj
│ │ ├── devcontainer-template.json
│ │ └──| .devcontainer
│ │ └── devcontainer.json
│ ├── scicloj
│ │ ├── devcontainer-template.json
│ │ └──| .devcontainer
│ │ ├── devcontainer.json
│ │ └── Dockerfile
| ├── ...
│ │ ├── devcontainer-template.json
│ │ └──| .devcontainer
│ │ └── devcontainer.json
├── test
│ ├── basecloj
│ │ └── test.sh
│ ├── scicloj
│ │ └── test.sh
│ └──test-utils
│ └── test-utils.sh
...
```## Distributing Templates
### Versioning
Templates are individually versioned by the `version` attribute in a Template's `devcontainer-template.json`. Templates are versioned according to the semver specification. More details can be found in [the Dev Container Template specification](https://containers.dev/implementors/templates-distribution/#versioning).
### Publishing
Templates are source files packaged together that encode configuration for a complete development environment.
This repo contains a GitHub Action [workflow](.github/workflows/release.yaml) that will publish each template to GHCR:
```
ghcr.io/scicloj/devcontainer-templates/basecloj:latest
ghcr.io/scicloj/devcontainer-templates/scicloj:latest
```The provided GitHub Action will also publish a third "metadata" package with just the namespace, eg: `ghcr.io/scicloj/devcontainer-templates`. This contains information useful for tools aiding in Template discovery.
### Adding Templates to the Index
Next you will need to add your Templates collection to our [public index](https://containers.dev/templates) so that other community members can find them. Just follow these steps once per collection you create:
* Go to [github.com/devcontainers/devcontainers.github.io](https://github.com/devcontainers/devcontainers.github.io)
* This is the GitHub repo backing the [containers.dev](https://containers.dev/) spec site
* Open a PR to modify the [collection-index.yml](https://github.com/devcontainers/devcontainers.github.io/blob/gh-pages/_data/collection-index.yml) fileThis index is from where [supporting tools](https://containers.dev/supporting) like [VS Code Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) and [GitHub Codespaces](https://github.com/templates/codespaces) surface Templates for their Dev Container Creation Configuration UI.
### Testing Templates
This repo contains a GitHub Action [workflow](.github/workflows/test-pr.yaml) for testing the Templates. Similar to the [`devcontainers/templates`](https://github.com/devcontainers/templates) repo, this repository has a `test` folder. Each Template has its own sub-folder, containing at least a `test.sh`.
For running the tests locally, you would need to execute the following commands -
```
./.github/actions/smoke-test/build.sh ${TEMPLATE-ID}
./.github/actions/smoke-test/test.sh ${TEMPLATE-ID}
```### Updating Documentation
This repo contains a GitHub Action [workflow](.github/workflows/release.yaml) that will automatically generate documentation (ie. `README.md`) for each Template. This file will be auto-generated from the `devcontainer-template.json` and `NOTES.md`.