A Javascript-based Action to do some stuff.
-
As a JavaScript based Action, this action can be run by any Operating system ( , & ). See "Types of Actions" in the GitHub Documentation for more information.
This action needs the GITHUB_TOKEN secret as it interacts with the GitHub API to FIXME describe why.
The action can be used as follows
---
name: CookieCutter GitHub Action TypeScript Test
permissions:
# FIXME: add project-dependant relevant permissions https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
"on":
push:
branches:
- master
paths:
- ".github/workflows/cookiecutter-github-action-typescript-test.yml"
# FIXME: add project-dependant relevant paths
jobs:
labels:
name: Invoke cookiecutter-github-action-typescript-test action
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: JonasPammer/cookiecutter-github-action-typescript-test@master # FIXME: change to release version
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
The Dependencies of this Project are defined in package.json
.
Install via:
$ npm install -D
The Dependencies of Additional Development Tools are defined in a
python pip requirements file
named requirements-dev.txt
.
Example Installation Instructions for Linux are shown below:
# "optional": create a python virtualenv and activate it for the current shell session $ python3 -m venv venv $ source venv/bin/activate $ python3 -m pip install -r requirements-dev.txt
Automatic Tests are run on each Contribution using GitHub Workflows.
To run the tests, simply run npm run build
followed by npm run test
on the command line.
As defined in action.yml
, the primary entry point for this action is dist/index.js
.
This bundled file needs to be generated by issuing npm run build
followed by npm run package
.
Tip
|
Packaging is performed on each contribution by a GitHub workflow, which automatically commits the generated files back to the repository. |
Versions are defined using Tags.
Versions must start with v
.
Note that major version tags (e.g. v1
, v2
)
are basically just pointers to the latest version
within said major version constraint (e.g. v1.2.3
).
This is accomplished through the use of a GitHub Workflow
that issues nowactions/update-majorver
on each push of a tag starting with v
.
This Project shall be kept in sync with the CookieCutter it was originally templated from using cruft (if possible) or manual alteration (if needed) to the best extend possible.
When a new tag is pushed, an appropriate GitHub Release will be created by the Repository Maintainer to provide a proper human change log with a title and description.
General Linting and Styling Conventions are
automatically held up to Standards
by various pre-commit
hooks, at least to some extend.
Automatic Execution of pre-commit is done on each Contribution using
pre-commit.ci
*.
Pull Requests even automatically get fixed by the same tool,
at least by hooks that automatically alter files.
Note
|
Not to confuse: Although some pre-commit hooks may be able to warn you about script-analyzed flaws in syntax or even code to some extend (for which reason pre-commitโs hooks are part of the test suite), pre-commit itself does not run any real Test Suites. For Information on Testing, see ๐งช Testing. |
Tip
|
Nevertheless, I recommend you to integrate pre-commit into your local development workflow yourself. This can be done by cdโing into the directory of your cloned project and running You can also, for example, execute pre-commitโs hooks at any time by running |
The following sections are generic in nature and are used to help new contributors. The actual "Development Documentation" of this project is found under ๐ Development.
First off, thank you for considering contributing to this Project.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
This Project owns many of its files to the CookieCutter it was originally templated from.
Please check if the edit you have in mind is actually applicable to the template and if so make an appropriate change there instead. Your change may also be applicable partly to the template as well as partly to something specific to this project, in which case you would be creating multiple PRs.
A casual contributor does not have to worry about following the spec by definition, as pull requests are being squash merged into one commit in the project. Only core contributors, i.e. those with rights to push to this projectโs branches, must follow it (e.g. to allow for automatic version determination and changelog generation to work).
Contributions are made to this repo via Issues and Pull Requests (PRs). A few general guidelines that cover both:
-
Search for existing Issues and PRs before creating your own.
-
If youโve never contributed before, see the first timerโs guide on Auth0โs blog for resources and tips on how to get started.
Issues should be used to report problems, request a new feature, or to discuss potential changes before a PR is created. When you create a new Issue, a template will be loaded that will guide you through collecting and providing the information we need to investigate.
If you find an Issue that addresses the problem youโre having, please add your own reproduction information to the existing issue rather than creating a new one. Adding a reaction can also help be indicating to our maintainers that a particular problem is affecting more than just the reporter.
PRs to this Project are always welcome and can be a quick way to get your fix or improvement slated for the next release. In general, PRs should:
-
Only fix/add the functionality in question OR address wide-spread whitespace/style issues, not both.
-
Add unit or integration tests for fixed or changed functionality (if a test suite already exists).
-
Address a single concern
-
Include documentation in the repo
-
Be accompanied by a complete Pull Request template (loaded automatically when a PR is created).
For changes that address core functionality or would require breaking changes (e.g. a major release), itโs best to open an Issue to discuss your proposal first.
In general, we follow the "fork-and-pull" Git workflow
-
Fork the repository to your own Github account
-
Clone the project to your machine
-
Create a branch locally with a succinct but descriptive name
-
Commit changes to the branch
-
Following any formatting and testing guidelines specific to this repo
-
Push changes to your fork
-
Open a PR in our repository and follow the PR template so that we can efficiently review the changes.
Please refer to the Release Page of this Repository for a human changelog of the corresponding Tags (Versions) of this Project.
Note that this Project adheres to Semantic Versioning. Please report any accidental breaking changes of a minor version update.
MIT License Copyright (c) 2022, Jonas Pammer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.