GithubHelp home page GithubHelp logo

devcontainer-features's Introduction

devcontainer-features

Welcome to devcontainer-features, a repository dedicated to the development and testing of new features for development containers (Dev Containers). This repository is designed to streamline the process of developing and testing Dev Container features, both locally and remotely using VSCode and GitHub CodeSpaces.

About Dev Containers

Dev Containers provide a fully configured development environment that can be used to develop and test applications in a consistent, reproducible manner. This repository contains a Dev Container definition to facilitate development.

Repository Structure

This repository is structured to support the development of Dev Container features. It includes:

  • .devcontainer/ - Dev Container Definition: A definition for setting up a development environment quickly and efficiently.
  • .github/workflows/ - GitHub Actions: Automated workflows to test, publish, and maintain the quality of Dev Container features.
  • src/*, test/* - Feature Directories: Each Dev Container feature has its own directory containing all necessary files.

Current Features

  • Bun: bun Javascript runtime written in zig, installed via node
  • Deno: Deno Javascript runtime written in rust
  • gitlint: gitlint git commit messages linter CLI tool
  • LaTeX: TeX Live installation with both latex and tlmgr runtimes, integrated with a VSCode extension for enhanced functionality.
  • ollama: ollama Run AI models locally with ollama's CLI.
  • pre-commit: pre-commit framework for managing and maintaining multi-language pre-commit hooks in a single repository.

Development and Testing

Running Dev Containers with VSCode

To run a Dev Container using VSCode:

  1. Ensure you have VSCode and the Remote - Containers extension installed.
  2. Clone the repository to your local machine.
  3. Open the repository folder in VSCode.
  4. VSCode may prompt you to reopen the folder in a container. If not, press F1 and select Remote-Containers: Open Folder in Container.

Running Dev Containers with GitHub CodeSpaces

To use a Dev Container in GitHub CodeSpaces:

  1. Navigate to the GitHub repository in your web browser.
  2. Click the 'Code' button and select 'Open with CodeSpaces'.
  3. If you have existing CodeSpaces, select one, or create a new CodeSpace.
  4. GitHub will prepare your Dev Container environment, allowing you to develop and test features directly in your browser.

Local Development with Dev Container CLI

You can test and develop features locally using the Dev Container CLI. This allows you to replicate the remote environment on your local machine using VSCode.

GitHub Actions

Our repository utilizes GitHub Actions for continuous integration and delivery:

  • Test Workflow: Automatically tests code on every pull request update against the main branch.
  • Publish Workflow: Handles the publishing of Dev Container features.
  • Auto-update Workflow: Automatically updates README.md files in feature directories.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Getting Started

To get started with devcontainer-features, clone the repository and follow the instructions in the README.md files of individual feature directories.

Support

For support, questions, or more information, please open an issue in this repository.

devcontainer-features's People

Contributors

prulloac avatar github-actions[bot] avatar joshspicer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.