feat(devcontainers): add the ability to use GitHub Codespaces and VS Code remote containers #727
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
For
Hacktoberfest
, I have been addingGitHub Codespaces
/VS Code Dev Containers
configuration for OSS projects to make it easier for contributors to the project to get up and running with the correct developer setup. Including the appropriate configuration for a project allows contributors to work entirely within a web browser viaGH Codespaces
, or inside of fully, and correctly configured containers on their own computer withVS Code Remote Containers
(both of these use the same configuration, asGH Codespaces
leverages theRemote Containers
features under the hood).For the
bruno
project, this configuration includes the following:Node LTS
ESLint
,Tailwind CSS
, andPrettier
extensionsplaywright
dependenciesnpm install
when the devcontainer is first createdBasically everything needed for a contributor to open the project after a fresh clone and be immediately productive, either locally with
VS Code
or remotely withGitHub Codespaces
!Note
The version of
playwright
in use in the repository is pretty out of date (^1.27.1
, released over a year ago, is in the package.json but1.39.0
is the latest version).Due to the workspace dependency being out of date, when the
devcontainer
automation to install the playwright browsers runs it installs older versions of the browsers (playwright attempts to always install browsers compatible with the playwright version) and these older browsers rely on outdated system dependencies which aren't present in this container.The end result of this is that some playwright tests are currently failing when run inside of the
devcontainer
, and the fix is very simple - just update the installed playwright dependency to the latest version (1.39.0
) so that it can use newer browser builds.I did not make that change in this PR as it felt out of scope to update an application dependency while adding the
devcontainer
configuration.For reference, here are some other repositories for whom I've opened PRs to do the same:
Contribution Checklist:
Closes #722
Supersedes #723 (closed and re-opened with a new branch name to match requested format)