Awesome Cookiecutter template for creating universal NodeJS-based GitHub Actions using TypeScript.
-
Continuous Integration with GitHub Actions
-
Testing with jest
-
Code Coverage Reporting with Codecov through CI
-
Static typing with typescript
-
As a JavaScript based Action, this action can be run by any Operating system (Linux, macOS, Windows). See "Types of Actions" in the GitHub Documentation for more information.
First, get Cruft. It’s a tool built in Cookiecutter that will allow you to keep up-to-date with the changes made to this cookiecutter.
$ python3 -m pip install cruft
Now run it against this repo:
$ cruft create https://github.com/JonasPammer/cookiecutter-github-action-typescript.git
Answer the prompts with your own desired options.
Enter the project and take a look around (replace "my-github-action" with your project slug):
$ cd my-github-action ~/my-github-action$ ls
Create a git repo and push it there (replace "YourGitHubName" with your github profile name and "my-github-action" with your project slug):
~/my-github-action$ git init ~/my-github-action$ git add . ~/my-github-action$ git commit -m "chore: create from cookiecutter" ~/my-github-action$ git remote add origin git@github.com:YourGitHubName/my-github-action.git ~/my-github-action$ git push -u origin master
Now take a look at your repo. Don’t forget to carefully look at the generated README - It contains all relevant Development Documentation.
Awesome, right?
ℹ️
|
This CookieCutter contains examplatory code snippets.
Things that definetily need to be replaced or can be removed by you
are commented with FIXME .
|
ℹ️
|
This CookieCutter does not configure your GitHub Repository. Please read the notes found in this README and perform the documented manual steps (e.g., Creating GitHub Action Secrets). |
I maintain several CookieCutter’s. Many of them share a similiar set of boilerplate files. You will find this section to be the same in most of them.
-
Includes an Awesome README
ℹ️Because github/markup#1095 (support include directives for other asciidoc files) is still not fixed, the following measures were taken:
-
README.orig.adoc
is the actual README that must be edited.
A GitHub Workflow takes care of generating the actualREADME.adoc
using the official toolascidoctor-reducer
. -
[optional] The README also exists as an automatically published GitHub Page, of which the HTML was generated by Asciidoctor (= done right).
ℹ️For this to work, you need to activate the Pages feature on a per-repository basis.
To do so, go to the Settings page of your GitHub repository. Under Pages / Source, select [
gh-pages
] [/ (root)
], and click Save.
-
-
Includes a Beginner-Friendly Development Documentation file
-
Includes a Beginner-Friendly generic Contribution Documentation file, inspired by Auth0’s Open Source Template.
-
Includes a generic security policy file that states that only the current major version of the project is actively supported with patches and that problems should be sent to the e-mail address specified when the cookiecutter was created. The file also contains a template that may be used for such inqueries.
-
Assumes MIT License.
-
Changelog is assumed to be managed through the use of GitHub Releases.
-
Includes numerous pre-commit hooks to automatically find linting issues, format your files, and find common issues of version control and source code
-
Includes a very much standard
yamllint
configuration (enforced through pre-commit and checked by CI) -
Assumes enforcement of Conventional Commit (checked by a pre-commit hook if activated)
❗The resulting projects mentions that this is completely optional for casual contributors, as it is assumed that pull requests are squash-merged by maintainers.
-
Includes a exhaustive
.gitignore
file generated by gitignore.io -
Includes a copy of the Contributor Covenant Code of Conduct as generated automatically by GitHub.
ℹ️
|
The resulting projects mentions that |
-
Includes a
.gitattributes
file, ensuring LF line endings -
Includes GitHub Issue Form Templates for filing bug reports and feature requests using HTML forms
-
Includes a GitHub Pull Request Template
-
Includes a GitHub Workflow to denote size of pull requests by automagically labelling them
-
Includes a pretty standard Renovate configuration file for dependency update automation (similiar to dependabot, but better).
ℹ️To enable Renovate, you need to enable it for your repositories, e.g. by using the recommended Way of installing the Renovate GitHub App to your GitHub profile (for free)!
-
Includes a GitHub Workflow to declaratively manage labels
-
The predefined labels definition is inspired by the kubernetes project
-