From 152f5690a4c460c00c72c334b7b26ffccc339f06 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Tue, 18 Jul 2023 23:05:44 +0700 Subject: [PATCH 01/18] [#20] Add Publish Wiki workflow --- .github/wiki/Getting-Started.md | 1 + .github/wiki/_Footer.md | 1 + .github/wiki/_Sidebar.md | 2 ++ .github/workflows/publish-wiki.yml | 29 +++++++++++++++++++++++++++++ 4 files changed, 33 insertions(+) create mode 100644 .github/wiki/Getting-Started.md create mode 100644 .github/wiki/_Footer.md create mode 100644 .github/wiki/_Sidebar.md create mode 100644 .github/workflows/publish-wiki.yml diff --git a/.github/wiki/Getting-Started.md b/.github/wiki/Getting-Started.md new file mode 100644 index 00000000..2fd9f957 --- /dev/null +++ b/.github/wiki/Getting-Started.md @@ -0,0 +1 @@ +TBD \ No newline at end of file diff --git a/.github/wiki/_Footer.md b/.github/wiki/_Footer.md new file mode 100644 index 00000000..43853c22 --- /dev/null +++ b/.github/wiki/_Footer.md @@ -0,0 +1 @@ +Developed by [Nimble](https://nimblehq.co/) diff --git a/.github/wiki/_Sidebar.md b/.github/wiki/_Sidebar.md new file mode 100644 index 00000000..d942e7c0 --- /dev/null +++ b/.github/wiki/_Sidebar.md @@ -0,0 +1,2 @@ +## Table of Contents + diff --git a/.github/workflows/publish-wiki.yml b/.github/workflows/publish-wiki.yml new file mode 100644 index 00000000..1a3c8b5d --- /dev/null +++ b/.github/workflows/publish-wiki.yml @@ -0,0 +1,29 @@ +name: Publish Github Wiki + +on: + push: + paths: + - .github/wiki/** + branches: + - develop + - feature/20-create-project-wiki + workflow_dispatch: + +jobs: + publish: + name: Publish Github Wiki + + runs-on: ubuntu-latest + + steps: + - name: Checkout the repository + uses: actions/checkout@v2 + with: + ref: ${{ github.head_ref }} + + - name: Publish Github Wiki + uses: nimblehq/publish-github-wiki-action@v1.0 + with: + user_name: nimble-wiki-bot + user_email: dev@nimblehq.co + user_access_token: ${{ secrets.GH_BOT_PAT }} From 766e9cbf1e9c3492f048e3fd7db64d23d1ba892e Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 08:00:04 +0700 Subject: [PATCH 02/18] [#20] Update the checkout action to latest version --- .github/workflows/publish-wiki.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-wiki.yml b/.github/workflows/publish-wiki.yml index 1a3c8b5d..85cafb49 100644 --- a/.github/workflows/publish-wiki.yml +++ b/.github/workflows/publish-wiki.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Checkout the repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: ${{ github.head_ref }} From 105e18af2293db85c3bcc4c22e84693c7b26e80a Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 08:12:00 +0700 Subject: [PATCH 03/18] [#20] Reorganize the existing documentation --- .../wiki/Contributing-guidelines.md | 2 - .github/wiki/Getting-Started.md | 35 +++++++++++++- .github/wiki/Home.md | 9 ++++ .github/wiki/_Sidebar.md | 3 ++ .../wiki/assets/images}/diagram_complete.svg | 0 README.md | 46 ++----------------- 6 files changed, 49 insertions(+), 46 deletions(-) rename CONTRIBUTING.md => .github/wiki/Contributing-guidelines.md (99%) create mode 100644 .github/wiki/Home.md rename {img => .github/wiki/assets/images}/diagram_complete.svg (100%) diff --git a/CONTRIBUTING.md b/.github/wiki/Contributing-guidelines.md similarity index 99% rename from CONTRIBUTING.md rename to .github/wiki/Contributing-guidelines.md index e3bddd48..8e08cdc2 100644 --- a/CONTRIBUTING.md +++ b/.github/wiki/Contributing-guidelines.md @@ -1,5 +1,3 @@ -# Contributing guidelines for the project - First off, thank you for considering contributing to this project. It's people like you that make this project such a great tool. We appreciate your help! The following is a set of guidelines for contributing to this project. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. diff --git a/.github/wiki/Getting-Started.md b/.github/wiki/Getting-Started.md index 2fd9f957..dd612c56 100644 --- a/.github/wiki/Getting-Started.md +++ b/.github/wiki/Getting-Started.md @@ -1 +1,34 @@ -TBD \ No newline at end of file +## Usage + +The CLI can be installed globally or run directly with `npx`: + +```bash +npm install -g @nimblehq/infra-template +nimble-infra generate {project-name} + +# or + +npx @nimblehq/infra-template generate {project-name} +``` + +The CLI supports the following commands: +- `generate` - to generate a new Terraform project: + +```bash +nimble-infra generate {project-name} +``` + +- `install` - to install a new addon/module to an existing Terraform project: + +```bash +nimble-infra install {addon-name} --project {project-name} +``` + +> [!NOTE]\ +> Terraform Cloud is supported by default. You need to set the `organization` and `workspace` in the `terraform` block of the `main.tf` file to use it. +> If you don't want to use Terraform Cloud, you can remove the `cloud` block in the `main.tf` file. + +### Reference as a template + +> [!NOTE]\ +> This template can be used for reference to add an addon/module to an existing Terraform project \ No newline at end of file diff --git a/.github/wiki/Home.md b/.github/wiki/Home.md new file mode 100644 index 00000000..9a3c70f1 --- /dev/null +++ b/.github/wiki/Home.md @@ -0,0 +1,9 @@ +An infrastructure template for web applications powered by Terraform. + +**Supported cloud:** AWS. We are looking for contributions to implement support for GCP, Heroku, and Azure! + +**Supported flavors:** +- A `Blank` flavor that generates a blank Terraform project. +- The `Complete` flavor generates the following infrastructure: + +![Diagram of the Complete Infrastructure](/assets/images/diagram_complete.svg?raw=true) diff --git a/.github/wiki/_Sidebar.md b/.github/wiki/_Sidebar.md index d942e7c0..fae7f825 100644 --- a/.github/wiki/_Sidebar.md +++ b/.github/wiki/_Sidebar.md @@ -1,2 +1,5 @@ ## Table of Contents +- [[Home]] +- [[Getting-Started]] +- [[Contributing|Contributing-guidelines]] diff --git a/img/diagram_complete.svg b/.github/wiki/assets/images/diagram_complete.svg similarity index 100% rename from img/diagram_complete.svg rename to .github/wiki/assets/images/diagram_complete.svg diff --git a/README.md b/README.md index 6401cdd2..663283c8 100644 --- a/README.md +++ b/README.md @@ -4,52 +4,12 @@ An infrastructure template for web applications powered by Terraform. **Supported cloud:** AWS. We are looking for contributions to implement support for GCP, Heroku, and Azure! -**Supported flavors:** -- A `Blank` flavor that generates a blank Terraform project. -- The `Complete` flavor generates the following infrastructure: - -![Diagram of the Complete Infrastructure](/img/diagram_complete.svg?raw=true) - -## Usage - -The CLI can be installed globally or run directly with `npx`: - -```bash -npm install -g @nimblehq/infra-template -nimble-infra generate {project-name} - -# or - -npx @nimblehq/infra-template generate {project-name} -``` - -The CLI supports the following commands: -- `generate` - to generate a new Terraform project: - -```bash -nimble-infra generate {project-name} -``` - -- `install` - to install a new addon/module to an existing Terraform project: - -```bash -nimble-infra install {addon-name} --project {project-name} -``` - -> [!NOTE]\ -> Terraform Cloud is supported by default. You need to set the `organization` and `workspace` in the `terraform` block of the `main.tf` file to use it. -> If you don't want to use Terraform Cloud, you can remove the `cloud` block in the `main.tf` file. - -### Reference as a template - -> [!NOTE]\ -> This template can be used for reference to add an addon/module to an existing Terraform project - - +## Documentation +For [usage instructions](../../wiki/getting-started) and documentation, please check out the [Wiki](../../wiki). ## Contributing -Check out our [contributing guidelines](/CONTRIBUTING.md) to get started. +Check out our [contributing guidelines](../../wiki/contributing) to get started. ## License From e745e5a8985ad4b1c434db1eb050d55404a8e370 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 08:47:44 +0700 Subject: [PATCH 04/18] [#20] Extract the project architecture from the Contributing guideline page --- .github/wiki/Architecture-overview.md | 51 ++++++++++++++++++ .github/wiki/Contributing-guidelines.md | 54 +------------------ .github/wiki/Home.md | 2 +- .github/wiki/_Sidebar.md | 9 +++- .../diagram-complete.svg} | 0 5 files changed, 61 insertions(+), 55 deletions(-) create mode 100644 .github/wiki/Architecture-overview.md rename .github/wiki/assets/images/{diagram_complete.svg => architecture/diagram-complete.svg} (100%) diff --git a/.github/wiki/Architecture-overview.md b/.github/wiki/Architecture-overview.md new file mode 100644 index 00000000..ec61acf8 --- /dev/null +++ b/.github/wiki/Architecture-overview.md @@ -0,0 +1,51 @@ +This project uses TypeScript and [OCLIF](https://oclif.io/) to build the CLI, Jest for testing, and ESLint for code formatting and linting. + +### Dependencies and Prerequisites + +- [Node.js](https://nodejs.org/en/download/) 12.x or higher - 18.x LTS is recommended +- NPM is preferred to use with this project + +### Project structure + +The project has the following main files and folders: + +```bash +├── bin # the executable file for the CLI +│ ├── dev # the executable file for the CLI in development mode +│ └── run # the executable file for the CLI in production mode +├── skeleton # the skeleton files for the project +│ ├── addons # the skeleton files for common addons e.g. version control, CI/CD, etc. +│ │ ├── aws # the skeleton files for AWS modules +│ │ └── versionControl # the skeleton files for version control +│ └── core # the skeleton folders +│ ├── base # the skeleton files for the base folder +│ └── shared # the skeleton files for the shared folder +├── src # the source code of the CLI +│ ├── commands # the commands of the CLI +│ │ ├── generate +│ │ └── installAddon +│ ├── helpers # the helper functions of the CLI +│ │ ├── childProcess.ts +│ │ ├── file.ts +│ │ └── terraform.ts +│ ├── hooks # the hooks of the CLI +│ │ └── postProcess.ts +│ ├── index.ts # the entry point of the CLI +│ └── templates # the code to generate the templates +│ ├── addons # the code to generate the common addons e.g. version control, CI/CD, AWS, etc. +│ └── core # the code to generate the main Terraform files e.g. `main.tf`, `variables.tf`, etc. +└── test # the test helpers and configurations + └── matchers # the custom matchers for Jest + ├── file.ts + ├── index.d.ts + └── index.ts +``` + +> [!NOTE]\ +> The `skeleton` folder and the `templates` folder are the two main folders that are used to generate the project files + +- The `skeleton` folder contains the addon's files and folders ready to be directly copy-pasted into the generated project if the related addon has been selected. These files serve as a starting point or "skeleton" for the specific addon. + +- On the other hand, the `templates` folder houses the logic for determining which files need to be copied from the templates folder into the core project files. It includes instructions on what files should be formed based on the type of addon/module being added (common addons, AWS modules, or standard files). + +In summary, while the `skeleton` folder provides the files and folders needed for the addon, the `templates` folder handles the dynamic copying and integration of those files within the core project structure. \ No newline at end of file diff --git a/.github/wiki/Contributing-guidelines.md b/.github/wiki/Contributing-guidelines.md index 8e08cdc2..9a63a628 100644 --- a/.github/wiki/Contributing-guidelines.md +++ b/.github/wiki/Contributing-guidelines.md @@ -4,18 +4,13 @@ The following is a set of guidelines for contributing to this project. These are ## Introduction -This project uses TypeScript and [OCLIF](https://oclif.io/) to build the CLI, Jest for testing, and ESLint for code formatting and linting. - ## Issues and feature requests If you have any issues or feature requests, please create an issue in the [GitHub issues](https://github.com/nimblehq/infrastructure-templates/issues) page. ## Development -### Prerequisites - -- [Node.js](https://nodejs.org/en/download/) 12.x or higher - 18.x LTS is recommended -- NPM is preferred to use with this project +Please refer to the [[Architecture Overview]] to understand the project's architecture first. ### Install dependencies @@ -39,51 +34,6 @@ bin/dev generate {project-name} bin/dev install {addon-name} --project {project-name} ``` -### Project structure - -The project has the following main files and folders: - -```bash -├── bin # the executable file for the CLI -│ ├── dev # the executable file for the CLI in development mode -│ └── run # the executable file for the CLI in production mode -├── skeleton # the skeleton files for the project -│ ├── addons # the skeleton files for common addons e.g. version control, CI/CD, etc. -│ │ ├── aws # the skeleton files for AWS modules -│ │ └── versionControl # the skeleton files for version control -│ └── core # the skeleton folders -│ ├── base # the skeleton files for the base folder -│ └── shared # the skeleton files for the shared folder -├── src # the source code of the CLI -│ ├── commands # the commands of the CLI -│ │ ├── generate -│ │ └── installAddon -│ ├── helpers # the helper functions of the CLI -│ │ ├── childProcess.ts -│ │ ├── file.ts -│ │ └── terraform.ts -│ ├── hooks # the hooks of the CLI -│ │ └── postProcess.ts -│ ├── index.ts # the entry point of the CLI -│ └── templates # the code to generate the templates -│ ├── addons # the code to generate the common addons e.g. version control, CI/CD, AWS, etc. -│ └── core # the code to generate the main Terraform files e.g. `main.tf`, `variables.tf`, etc. -└── test # the test helpers and configurations - └── matchers # the custom matchers for Jest - ├── file.ts - ├── index.d.ts - └── index.ts -``` - -> [!NOTE]\ -> The `skeleton` folder and the `templates` folder are the two main folders that are used to generate the project files - -- The `skeleton` folder contains the addon's files and folders ready to be directly copy-pasted into the generated project if the related addon has been selected. These files serve as a starting point or "skeleton" for the specific addon. - -- On the other hand, the `templates` folder houses the logic for determining which files need to be copied from the templates folder into the core project files. It includes instructions on what files should be formed based on the type of addon/module being added (common addons, AWS modules, or standard files). - -In summary, while the `skeleton` folder provides the files and folders needed for the addon, the `templates` folder handles the dynamic copying and integration of those files within the core project structure. - ### Add a new command To add a new command, create a new folder in the `src/commands` and add the `index.ts` file. @@ -110,7 +60,7 @@ Inside the newly created addon/module folder, you can include the code required #### Using the Template as a Reference -To copy and include supporting modules from the template, you can follow these steps: +Follow these steps to copy and include supporting modules from the template: 1. Open the `src/templates` directory in your project. 2. Explore the code and structure of the existing addon or module that you want to reference. diff --git a/.github/wiki/Home.md b/.github/wiki/Home.md index 9a3c70f1..dbdb351f 100644 --- a/.github/wiki/Home.md +++ b/.github/wiki/Home.md @@ -6,4 +6,4 @@ An infrastructure template for web applications powered by Terraform. - A `Blank` flavor that generates a blank Terraform project. - The `Complete` flavor generates the following infrastructure: -![Diagram of the Complete Infrastructure](/assets/images/diagram_complete.svg?raw=true) +![Diagram of the Complete Infrastructure](assets/images/architecture/diagram_complete.svg?raw=true) diff --git a/.github/wiki/_Sidebar.md b/.github/wiki/_Sidebar.md index fae7f825..69b85c6d 100644 --- a/.github/wiki/_Sidebar.md +++ b/.github/wiki/_Sidebar.md @@ -1,5 +1,10 @@ ## Table of Contents - [[Home]] -- [[Getting-Started]] -- [[Contributing|Contributing-guidelines]] +- [[Getting Started]] + +## Architecture +- [[Architecture Overview]] + +## Contributing +- [[Contributing guidelines]] diff --git a/.github/wiki/assets/images/diagram_complete.svg b/.github/wiki/assets/images/architecture/diagram-complete.svg similarity index 100% rename from .github/wiki/assets/images/diagram_complete.svg rename to .github/wiki/assets/images/architecture/diagram-complete.svg From a9bec0fa66275f9fe2501bf5f71c527c643a00a4 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 10:42:54 +0700 Subject: [PATCH 05/18] [#20] Extract the remaining part of the Contributing guideline --- .github/wiki/Add-new-addon-module.md | 14 +++ .github/wiki/Add-new-command.md | 2 + .github/wiki/Architecture-overview.md | 7 +- .github/wiki/Contributing-guidelines.md | 99 +------------------ .github/wiki/Home.md | 2 +- .github/wiki/Publishing.md | 14 +++ .github/wiki/Setup-development-environment.md | 26 +++++ .github/wiki/Testing.md | 14 +++ .../wiki/Using-the-template-as-reference.md | 15 +++ .github/wiki/_Sidebar.md | 2 + 10 files changed, 90 insertions(+), 105 deletions(-) create mode 100644 .github/wiki/Add-new-addon-module.md create mode 100644 .github/wiki/Add-new-command.md create mode 100644 .github/wiki/Publishing.md create mode 100644 .github/wiki/Setup-development-environment.md create mode 100644 .github/wiki/Testing.md create mode 100644 .github/wiki/Using-the-template-as-reference.md diff --git a/.github/wiki/Add-new-addon-module.md b/.github/wiki/Add-new-addon-module.md new file mode 100644 index 00000000..e994bd98 --- /dev/null +++ b/.github/wiki/Add-new-addon-module.md @@ -0,0 +1,14 @@ +To add a new addon or module, follow these steps: + +1. Navigate to the `src/templates` folder in the project directory. +2. Create a new folder depending on the type of the addon/module you want to add: + - For addons, create a new folder in the `src/templates/addons` directory. + - For the core Terraform files, create a new folder/file in the `src/templates/core` directory. + + Inside the newly created addon/module folder, you can include the code required to generate the templates. + +3. Navigate to the `skeleton` folder at the same level as the `src` folder in the project directory. +4. Add the skeleton folders/files for the addon/module that you are adding inside the corresponding folder in the `skeleton` directory. + +> [!NOTE]\ +> Before adding a new addon/module, it is recommended to check the existing ones for reference. \ No newline at end of file diff --git a/.github/wiki/Add-new-command.md b/.github/wiki/Add-new-command.md new file mode 100644 index 00000000..ea650ab6 --- /dev/null +++ b/.github/wiki/Add-new-command.md @@ -0,0 +1,2 @@ +To add a new CLI command, create a new folder in the `src/commands` and add the `index.ts` file. +The command documentation can be found [here](https://oclif.io/docs/commands). \ No newline at end of file diff --git a/.github/wiki/Architecture-overview.md b/.github/wiki/Architecture-overview.md index ec61acf8..423da389 100644 --- a/.github/wiki/Architecture-overview.md +++ b/.github/wiki/Architecture-overview.md @@ -1,11 +1,6 @@ This project uses TypeScript and [OCLIF](https://oclif.io/) to build the CLI, Jest for testing, and ESLint for code formatting and linting. -### Dependencies and Prerequisites - -- [Node.js](https://nodejs.org/en/download/) 12.x or higher - 18.x LTS is recommended -- NPM is preferred to use with this project - -### Project structure +## Project structure The project has the following main files and folders: diff --git a/.github/wiki/Contributing-guidelines.md b/.github/wiki/Contributing-guidelines.md index 9a63a628..96327701 100644 --- a/.github/wiki/Contributing-guidelines.md +++ b/.github/wiki/Contributing-guidelines.md @@ -10,101 +10,4 @@ If you have any issues or feature requests, please create an issue in the [GitHu ## Development -Please refer to the [[Architecture Overview]] to understand the project's architecture first. - -### Install dependencies - -```bash -npm install -``` - -### Run the CLI locally - -The CLI supports the following commands: - -1. `generate` - to generate a new Terraform project - -```bash -bin/dev generate {project-name} -``` - -2. `install` - to install a new addon/module to an existing Terraform project - -```bash -bin/dev install {addon-name} --project {project-name} -``` - -### Add a new command - -To add a new command, create a new folder in the `src/commands` and add the `index.ts` file. -The command documentation can be found [here](https://oclif.io/docs/commands). - -### Add a new addon/module - -#### Adding a New Addon/Module - -To add a new addon or module, follow these steps: - -1. Navigate to the `src/templates` folder in the project directory. -2. Create a new folder depending on the type of the addon/module you want to add: - - For addons, create a new folder in the `src/templates/addons` directory. - - For the core Terraform files, create a new folder/file in the `src/templates/core` directory. - -Inside the newly created addon/module folder, you can include the code required to generate the templates. - -3. Navigate to the `skeleton` folder at the same level as the `src` folder in the project directory. -4. Add the skeleton folders/files for the addon/module that you are adding inside the corresponding folder in the `skeleton` directory. - -> [!NOTE]\ -> Before adding a new addon/module, it is recommended to check the existing ones for reference. - -#### Using the Template as a Reference - -Follow these steps to copy and include supporting modules from the template: - -1. Open the `src/templates` directory in your project. -2. Explore the code and structure of the existing addon or module that you want to reference. - -Inside each addon or module folder, you will find the necessary files and directories needed for that specific functionality. - -3. Once you have identified the supporting modules or files you want to include in your own project, mirror the folder structure and file naming conventions of the existing addon or module that you are referencing. - -4. Copy and paste the relevant files from the existing addon or module into your new addon/module folder. - -> [!NOTE]\ -> Make sure to update any necessary configuration or code inside the copied files to fit your specific requirements. - -By following this process, you can use the existing templates as a reference to create your own addons or modules based on the provided structure and functionality. - -## Testing - -### Run tests - -```bash -npm run test -``` - -### Run and fix linting - -```bash -npm run lint // to check linting - -npm run lint:fix // to fix linting -``` - -## Publishing - -- This project will be published to NPM automatically when a new release is created in GitHub. Therefore, the package version in `package.json` should be updated before creating a new release. - -- The release should be created in the `main` branch and created with the following format: `{major}.{minor}.{patch}`, e.g. `1.0.0`. - -### Manual publishing - -- To publish the project manually, run the following command: - -```bash -npm run publish -``` - -> [!IMPORTANT]\ -> NPM credentials are required to publish the project. Ensure that the version in `package.json` is updated. +Please refer to the [[Architecture Overview]] to understand the project's architecture first. Then, go through the guidelines under the "Contributing" menu on the right sidebar to set up the development environment, understading the way to create new modules, running tests, and publishing an new release to NPM. diff --git a/.github/wiki/Home.md b/.github/wiki/Home.md index dbdb351f..eb28a6dc 100644 --- a/.github/wiki/Home.md +++ b/.github/wiki/Home.md @@ -6,4 +6,4 @@ An infrastructure template for web applications powered by Terraform. - A `Blank` flavor that generates a blank Terraform project. - The `Complete` flavor generates the following infrastructure: -![Diagram of the Complete Infrastructure](assets/images/architecture/diagram_complete.svg?raw=true) +![Diagram of the Complete Infrastructure](assets/images/architecture/diagram-complete.svg?raw=true) diff --git a/.github/wiki/Publishing.md b/.github/wiki/Publishing.md new file mode 100644 index 00000000..b5a2945d --- /dev/null +++ b/.github/wiki/Publishing.md @@ -0,0 +1,14 @@ +- This project will be published to NPM automatically when a new release is created in GitHub. Therefore, the package version in `package.json` should be updated before creating a new release. + +- The release should be created in the `main` branch and created with the following format: `{major}.{minor}.{patch}`, e.g. `1.0.0`. + +## Manual publishing + +- To publish the project manually, run the following command: + +```bash +npm run publish +``` + +> [!IMPORTANT]\ +> NPM credentials are required to publish the project. Ensure that the version in `package.json` is updated. diff --git a/.github/wiki/Setup-development-environment.md b/.github/wiki/Setup-development-environment.md new file mode 100644 index 00000000..d31c6548 --- /dev/null +++ b/.github/wiki/Setup-development-environment.md @@ -0,0 +1,26 @@ +## Dependencies and Prerequisites + +- [Node.js](https://nodejs.org/en/download/) 12.x or higher - 18.x LTS is recommended +- NPM is preferred to use with this project + +## Install dependencies + +```bash +npm install +``` + +## Run the CLI locally + +The CLI supports the following commands: + +1. `generate` - to generate a new Terraform project + +```bash +bin/dev generate {project-name} +``` + +2. `install` - to install a new addon/module to an existing Terraform project + +```bash +bin/dev install {addon-name} --project {project-name} +``` diff --git a/.github/wiki/Testing.md b/.github/wiki/Testing.md new file mode 100644 index 00000000..77843ffa --- /dev/null +++ b/.github/wiki/Testing.md @@ -0,0 +1,14 @@ +## Run tests + +```bash +npm run test +``` + +## Run and fix linting + +```bash +npm run lint // to check linting + +npm run lint:fix // to fix linting +``` + diff --git a/.github/wiki/Using-the-template-as-reference.md b/.github/wiki/Using-the-template-as-reference.md new file mode 100644 index 00000000..0a8e9302 --- /dev/null +++ b/.github/wiki/Using-the-template-as-reference.md @@ -0,0 +1,15 @@ +Follow these steps to copy and include supporting modules from the template: + +1. Open the `src/templates` directory in your project. +2. Explore the code and structure of the existing addon or module that you want to reference. + +Inside each addon or module folder, you will find the necessary files and directories needed for that specific functionality. + +3. Once you have identified the supporting modules or files you want to include in your own project, mirror the folder structure and file naming conventions of the existing addon or module that you are referencing. + +4. Copy and paste the relevant files from the existing addon or module into your new addon/module folder. + +> [!NOTE]\ +> Make sure to update any necessary configuration or code inside the copied files to fit your specific requirements. + +By following this process, you can use the existing templates as a reference to create your own addons or modules based on the provided structure and functionality. \ No newline at end of file diff --git a/.github/wiki/_Sidebar.md b/.github/wiki/_Sidebar.md index 69b85c6d..30a7205c 100644 --- a/.github/wiki/_Sidebar.md +++ b/.github/wiki/_Sidebar.md @@ -8,3 +8,5 @@ ## Contributing - [[Contributing guidelines]] +- [[Testing]] +- [[Publishing]] From a01544337844c99eb296c79bf27865c95aded059 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 10:50:00 +0700 Subject: [PATCH 06/18] [#20] Add missing sidebar menu entries --- .github/wiki/Contributing-guidelines.md | 7 +++---- .github/wiki/_Sidebar.md | 4 ++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/wiki/Contributing-guidelines.md b/.github/wiki/Contributing-guidelines.md index 96327701..12360e53 100644 --- a/.github/wiki/Contributing-guidelines.md +++ b/.github/wiki/Contributing-guidelines.md @@ -2,12 +2,11 @@ First off, thank you for considering contributing to this project. It's people l The following is a set of guidelines for contributing to this project. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. -## Introduction - ## Issues and feature requests -If you have any issues or feature requests, please create an issue in the [GitHub issues](https://github.com/nimblehq/infrastructure-templates/issues) page. +If you encounter any issues or have feature requests, please create an issue on the [GitHub issues](https://github.com/nimblehq/infrastructure-templates/issues) page. Please ensure that a similar issue has not already been created before submitting. ## Development -Please refer to the [[Architecture Overview]] to understand the project's architecture first. Then, go through the guidelines under the "Contributing" menu on the right sidebar to set up the development environment, understading the way to create new modules, running tests, and publishing an new release to NPM. +- Please refer to the [[Architecture Overview]] to understand the project's architecture first. +- Then, go through the guidelines under the "Contributing" menu on the right sidebar to set up the development environment, understading the way to create new modules, running tests, and publishing an new release to NPM. diff --git a/.github/wiki/_Sidebar.md b/.github/wiki/_Sidebar.md index 30a7205c..9e8f899b 100644 --- a/.github/wiki/_Sidebar.md +++ b/.github/wiki/_Sidebar.md @@ -8,5 +8,9 @@ ## Contributing - [[Contributing guidelines]] +- [[Setup Development Environment]] +- [[Add a new CLI command | Add new command]] +- [[Add New Addon or Module | Add new addon module]] +- [[Using The Template As Reference]] - [[Testing]] - [[Publishing]] From 89f9d5cee2bba8ac8c160907b397ef1fb3fc6ba4 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 11:02:03 +0700 Subject: [PATCH 07/18] [#20] Add a section for infra diagram --- .github/wiki/Home.md | 1 + .github/wiki/Modify-infra-diagram.md | 3 +++ .github/wiki/_Sidebar.md | 1 + 3 files changed, 5 insertions(+) create mode 100644 .github/wiki/Modify-infra-diagram.md diff --git a/.github/wiki/Home.md b/.github/wiki/Home.md index eb28a6dc..417c0bc2 100644 --- a/.github/wiki/Home.md +++ b/.github/wiki/Home.md @@ -7,3 +7,4 @@ An infrastructure template for web applications powered by Terraform. - The `Complete` flavor generates the following infrastructure: ![Diagram of the Complete Infrastructure](assets/images/architecture/diagram-complete.svg?raw=true) +[Editable on Lucid Chart](https://lucid.app/lucidchart/803dcda3-e444-4d4f-b88b-432175a91bc5/edit?page=0_0&invitationId=inv_1bd4718b-629c-4991-a22f-134b744b0b36#) diff --git a/.github/wiki/Modify-infra-diagram.md b/.github/wiki/Modify-infra-diagram.md new file mode 100644 index 00000000..0b16f8a5 --- /dev/null +++ b/.github/wiki/Modify-infra-diagram.md @@ -0,0 +1,3 @@ +The following infrastructure diagram was created using Lucidchart. In case further modifications are needed, such as when new modules are added, please duplicate the original diagram found [here]() and modify as necessary. + +![Diagram of the Complete Infrastructure](assets/images/architecture/diagram-complete.svg?raw=true) diff --git a/.github/wiki/_Sidebar.md b/.github/wiki/_Sidebar.md index 9e8f899b..d988ca51 100644 --- a/.github/wiki/_Sidebar.md +++ b/.github/wiki/_Sidebar.md @@ -13,4 +13,5 @@ - [[Add New Addon or Module | Add new addon module]] - [[Using The Template As Reference]] - [[Testing]] +- [[Modify the Infrastructure Diagram | Modify infra diagram]] - [[Publishing]] From 7cfc988f767410cddefeee232d7a765aa5d9878d Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 11:17:51 +0700 Subject: [PATCH 08/18] [#20] Add CD workflow badges --- .github/workflows/publish-wiki.yml | 1 - README.md | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-wiki.yml b/.github/workflows/publish-wiki.yml index 85cafb49..bb2a59c2 100644 --- a/.github/workflows/publish-wiki.yml +++ b/.github/workflows/publish-wiki.yml @@ -6,7 +6,6 @@ on: - .github/wiki/** branches: - develop - - feature/20-create-project-wiki workflow_dispatch: jobs: diff --git a/README.md b/README.md index 663283c8..1986b06c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +![Publish Wiki Status](https://github.com/nimblehq/infrastructure-templates/actions/workflows/publish-wiki.yml/badge.svg) +![Publish to NPM Status](https://github.com/nimblehq/infrastructure-templates/actions/workflows/publish.yml/badge.svg) + # Nimble Infrastructure Template An infrastructure template for web applications powered by Terraform. From 32de8b6fb65deb35ad0fa9e6b53ada54523be295 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 11:23:19 +0700 Subject: [PATCH 09/18] [#20] Update the project structure to include Github dir --- .github/wiki/Architecture-overview.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/wiki/Architecture-overview.md b/.github/wiki/Architecture-overview.md index 423da389..c8277d56 100644 --- a/.github/wiki/Architecture-overview.md +++ b/.github/wiki/Architecture-overview.md @@ -5,6 +5,9 @@ This project uses TypeScript and [OCLIF](https://oclif.io/) to build the CLI, Je The project has the following main files and folders: ```bash +├── .github +│ ├── workflows # Contains the Github Action workflows +│ └── wiki # Houses the content for the Wiki of this project. The Wiki will be published automatically upon merging to the `develop` branch. ├── bin # the executable file for the CLI │ ├── dev # the executable file for the CLI in development mode │ └── run # the executable file for the CLI in production mode From 9bef64b7fb83b3e955cf845e2f913168a5930835 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 13:28:04 +0700 Subject: [PATCH 10/18] [#20] Replace the Alert syntax as it has not been supported for Wiki content yet https://github.com/orgs/community/discussions/16925#discussioncomment-6700896 --- .github/wiki/Add-new-addon-module.md | 2 +- .github/wiki/Architecture-overview.md | 2 +- .github/wiki/Getting-Started.md | 6 +++--- .github/wiki/Using-the-template-as-reference.md | 2 +- .github/workflows/publish-wiki.yml | 1 + 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/wiki/Add-new-addon-module.md b/.github/wiki/Add-new-addon-module.md index e994bd98..f647e027 100644 --- a/.github/wiki/Add-new-addon-module.md +++ b/.github/wiki/Add-new-addon-module.md @@ -10,5 +10,5 @@ To add a new addon or module, follow these steps: 3. Navigate to the `skeleton` folder at the same level as the `src` folder in the project directory. 4. Add the skeleton folders/files for the addon/module that you are adding inside the corresponding folder in the `skeleton` directory. -> [!NOTE]\ +> **Note**!\ > Before adding a new addon/module, it is recommended to check the existing ones for reference. \ No newline at end of file diff --git a/.github/wiki/Architecture-overview.md b/.github/wiki/Architecture-overview.md index c8277d56..04be6935 100644 --- a/.github/wiki/Architecture-overview.md +++ b/.github/wiki/Architecture-overview.md @@ -39,7 +39,7 @@ The project has the following main files and folders: └── index.ts ``` -> [!NOTE]\ +> **Note**!\ > The `skeleton` folder and the `templates` folder are the two main folders that are used to generate the project files - The `skeleton` folder contains the addon's files and folders ready to be directly copy-pasted into the generated project if the related addon has been selected. These files serve as a starting point or "skeleton" for the specific addon. diff --git a/.github/wiki/Getting-Started.md b/.github/wiki/Getting-Started.md index dd612c56..33c0f121 100644 --- a/.github/wiki/Getting-Started.md +++ b/.github/wiki/Getting-Started.md @@ -24,11 +24,11 @@ nimble-infra generate {project-name} nimble-infra install {addon-name} --project {project-name} ``` -> [!NOTE]\ +> **Note**!\ > Terraform Cloud is supported by default. You need to set the `organization` and `workspace` in the `terraform` block of the `main.tf` file to use it. > If you don't want to use Terraform Cloud, you can remove the `cloud` block in the `main.tf` file. ### Reference as a template -> [!NOTE]\ -> This template can be used for reference to add an addon/module to an existing Terraform project \ No newline at end of file +> **Note**!\ +> This template can be used for reference to add an addon/module to an existing Terraform project diff --git a/.github/wiki/Using-the-template-as-reference.md b/.github/wiki/Using-the-template-as-reference.md index 0a8e9302..d0745761 100644 --- a/.github/wiki/Using-the-template-as-reference.md +++ b/.github/wiki/Using-the-template-as-reference.md @@ -9,7 +9,7 @@ Inside each addon or module folder, you will find the necessary files and direct 4. Copy and paste the relevant files from the existing addon or module into your new addon/module folder. -> [!NOTE]\ +> **Note**!\ > Make sure to update any necessary configuration or code inside the copied files to fit your specific requirements. By following this process, you can use the existing templates as a reference to create your own addons or modules based on the provided structure and functionality. \ No newline at end of file diff --git a/.github/workflows/publish-wiki.yml b/.github/workflows/publish-wiki.yml index bb2a59c2..85cafb49 100644 --- a/.github/workflows/publish-wiki.yml +++ b/.github/workflows/publish-wiki.yml @@ -6,6 +6,7 @@ on: - .github/wiki/** branches: - develop + - feature/20-create-project-wiki workflow_dispatch: jobs: From c2cbb5bbd93ed14516bdd175883993d0271eade8 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Wed, 30 Aug 2023 13:32:53 +0700 Subject: [PATCH 11/18] [#20] Remove the feature branch from the workflow --- .github/wiki/Publishing.md | 2 +- .github/workflows/publish-wiki.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/wiki/Publishing.md b/.github/wiki/Publishing.md index b5a2945d..9f2c7465 100644 --- a/.github/wiki/Publishing.md +++ b/.github/wiki/Publishing.md @@ -10,5 +10,5 @@ npm run publish ``` -> [!IMPORTANT]\ +> **IMPORTANT**!\ > NPM credentials are required to publish the project. Ensure that the version in `package.json` is updated. diff --git a/.github/workflows/publish-wiki.yml b/.github/workflows/publish-wiki.yml index 85cafb49..bb2a59c2 100644 --- a/.github/workflows/publish-wiki.yml +++ b/.github/workflows/publish-wiki.yml @@ -6,7 +6,6 @@ on: - .github/wiki/** branches: - develop - - feature/20-create-project-wiki workflow_dispatch: jobs: From 4b4c684256f7b9383eb63b60b9842b3dd7764d03 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Thu, 31 Aug 2023 15:42:39 +0700 Subject: [PATCH 12/18] [#20] Update the project structure to match the latest folder naming --- .github/wiki/Add-new-addon-module.md | 12 ++++----- .github/wiki/Architecture-overview.md | 26 +++++++++---------- ...md => Using-the-generator-as-reference.md} | 6 ++--- .github/wiki/_Sidebar.md | 4 +-- .github/workflows/publish-wiki.yml | 1 + 5 files changed, 25 insertions(+), 24 deletions(-) rename .github/wiki/{Using-the-template-as-reference.md => Using-the-generator-as-reference.md} (88%) diff --git a/.github/wiki/Add-new-addon-module.md b/.github/wiki/Add-new-addon-module.md index f647e027..f8225b03 100644 --- a/.github/wiki/Add-new-addon-module.md +++ b/.github/wiki/Add-new-addon-module.md @@ -1,14 +1,14 @@ To add a new addon or module, follow these steps: -1. Navigate to the `src/templates` folder in the project directory. +1. Navigate to the `./src/generators` folder in the project directory. 2. Create a new folder depending on the type of the addon/module you want to add: - - For addons, create a new folder in the `src/templates/addons` directory. - - For the core Terraform files, create a new folder/file in the `src/templates/core` directory. + - For addons, create a new folder in the `./src/generators/addons` directory. + - For the core Terraform files, create a new folder/file in the `./src/generators/terraform` directory. Inside the newly created addon/module folder, you can include the code required to generate the templates. -3. Navigate to the `skeleton` folder at the same level as the `src` folder in the project directory. -4. Add the skeleton folders/files for the addon/module that you are adding inside the corresponding folder in the `skeleton` directory. +3. Navigate to the `./templates` folder at the same level as the `src` folder in the project directory. +4. Add the template folders/files for the addon/module that you are adding inside the corresponding folder in the `./templates` directory. -> **Note**!\ +> **Note**!\ > Before adding a new addon/module, it is recommended to check the existing ones for reference. \ No newline at end of file diff --git a/.github/wiki/Architecture-overview.md b/.github/wiki/Architecture-overview.md index 04be6935..3975fde2 100644 --- a/.github/wiki/Architecture-overview.md +++ b/.github/wiki/Architecture-overview.md @@ -11,13 +11,13 @@ The project has the following main files and folders: ├── bin # the executable file for the CLI │ ├── dev # the executable file for the CLI in development mode │ └── run # the executable file for the CLI in production mode -├── skeleton # the skeleton files for the project -│ ├── addons # the skeleton files for common addons e.g. version control, CI/CD, etc. -│ │ ├── aws # the skeleton files for AWS modules -│ │ └── versionControl # the skeleton files for version control -│ └── core # the skeleton folders -│ ├── base # the skeleton files for the base folder -│ └── shared # the skeleton files for the shared folder +├── templates # the templates files for the project +│ ├── addons # the templates files for common addons e.g. version control, CI/CD, etc. +│ │ ├── aws # the templates files for AWS modules +│ │ └── versionControl # the templates files for version control +│ └── terraform # the templates folders +│ ├── core # the templates files for the core folder +│ └── shared # the templates files for the shared folder ├── src # the source code of the CLI │ ├── commands # the commands of the CLI │ │ ├── generate @@ -29,9 +29,9 @@ The project has the following main files and folders: │ ├── hooks # the hooks of the CLI │ │ └── postProcess.ts │ ├── index.ts # the entry point of the CLI -│ └── templates # the code to generate the templates +│ └── generators # the code to generate the templates │ ├── addons # the code to generate the common addons e.g. version control, CI/CD, AWS, etc. -│ └── core # the code to generate the main Terraform files e.g. `main.tf`, `variables.tf`, etc. +│ └── terraform # the code to generate the main Terraform files e.g. `main.tf`, `variables.tf`, etc. └── test # the test helpers and configurations └── matchers # the custom matchers for Jest ├── file.ts @@ -40,10 +40,10 @@ The project has the following main files and folders: ``` > **Note**!\ -> The `skeleton` folder and the `templates` folder are the two main folders that are used to generate the project files +> The `./templates` and the `./src/generators` folder are the two main folders that are used to generate the project files -- The `skeleton` folder contains the addon's files and folders ready to be directly copy-pasted into the generated project if the related addon has been selected. These files serve as a starting point or "skeleton" for the specific addon. +- The `./template` folder contains the addon's files and folders ready to be directly copy-pasted into the generated project if the related addon has been selected. These files serve as a starting point or "template" for the specific addon. -- On the other hand, the `templates` folder houses the logic for determining which files need to be copied from the templates folder into the core project files. It includes instructions on what files should be formed based on the type of addon/module being added (common addons, AWS modules, or standard files). +- On the other hand, the `./src/generators` folder houses the logic for determining which files need to be copied from this folder into the core project files. It includes instructions on what files should be formed based on the type of addon/module being added (common addons, AWS modules, or standard files). -In summary, while the `skeleton` folder provides the files and folders needed for the addon, the `templates` folder handles the dynamic copying and integration of those files within the core project structure. \ No newline at end of file +In summary, while the `./template` folder provides the files and folders needed for the addon, the `./src/generators` folder handles the dynamic copying and integration of those files within the core project structure. \ No newline at end of file diff --git a/.github/wiki/Using-the-template-as-reference.md b/.github/wiki/Using-the-generator-as-reference.md similarity index 88% rename from .github/wiki/Using-the-template-as-reference.md rename to .github/wiki/Using-the-generator-as-reference.md index d0745761..4ef0a7e6 100644 --- a/.github/wiki/Using-the-template-as-reference.md +++ b/.github/wiki/Using-the-generator-as-reference.md @@ -1,6 +1,6 @@ -Follow these steps to copy and include supporting modules from the template: +Follow these steps to copy and include supporting modules from the generator: -1. Open the `src/templates` directory in your project. +1. Open the `./src/generators` directory in your project. 2. Explore the code and structure of the existing addon or module that you want to reference. Inside each addon or module folder, you will find the necessary files and directories needed for that specific functionality. @@ -12,4 +12,4 @@ Inside each addon or module folder, you will find the necessary files and direct > **Note**!\ > Make sure to update any necessary configuration or code inside the copied files to fit your specific requirements. -By following this process, you can use the existing templates as a reference to create your own addons or modules based on the provided structure and functionality. \ No newline at end of file +By following this process, you can use the existing templates as a reference to create your own addons or modules based on the provided structure and functionality. diff --git a/.github/wiki/_Sidebar.md b/.github/wiki/_Sidebar.md index d988ca51..e3639f8a 100644 --- a/.github/wiki/_Sidebar.md +++ b/.github/wiki/_Sidebar.md @@ -8,10 +8,10 @@ ## Contributing - [[Contributing guidelines]] -- [[Setup Development Environment]] +- [[Set up the Development Environment]] - [[Add a new CLI command | Add new command]] - [[Add New Addon or Module | Add new addon module]] -- [[Using The Template As Reference]] +- [[Using The Generator As Reference]] - [[Testing]] - [[Modify the Infrastructure Diagram | Modify infra diagram]] - [[Publishing]] diff --git a/.github/workflows/publish-wiki.yml b/.github/workflows/publish-wiki.yml index bb2a59c2..1af1fda9 100644 --- a/.github/workflows/publish-wiki.yml +++ b/.github/workflows/publish-wiki.yml @@ -6,6 +6,7 @@ on: - .github/wiki/** branches: - develop + - chore/gh-208-rename-folders workflow_dispatch: jobs: From 4875f600fcf7a1b29052c55e01ffed22a82871cd Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Thu, 31 Aug 2023 15:53:39 +0700 Subject: [PATCH 13/18] [#20] Update the project structure to match the latest folder naming --- .github/wiki/Contributing-guidelines.md | 2 +- ...ent-environment.md => Set-up-the-development-environment.md} | 0 .github/workflows/publish-wiki.yml | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename .github/wiki/{Setup-development-environment.md => Set-up-the-development-environment.md} (100%) diff --git a/.github/wiki/Contributing-guidelines.md b/.github/wiki/Contributing-guidelines.md index 12360e53..3dd1bf72 100644 --- a/.github/wiki/Contributing-guidelines.md +++ b/.github/wiki/Contributing-guidelines.md @@ -9,4 +9,4 @@ If you encounter any issues or have feature requests, please create an issue on ## Development - Please refer to the [[Architecture Overview]] to understand the project's architecture first. -- Then, go through the guidelines under the "Contributing" menu on the right sidebar to set up the development environment, understading the way to create new modules, running tests, and publishing an new release to NPM. +- Then, go through the guidelines under the "Contributing" menu on the right sidebar to set up the Development Environment, understading the way to create new modules, running tests, and publishing an new release to NPM. diff --git a/.github/wiki/Setup-development-environment.md b/.github/wiki/Set-up-the-development-environment.md similarity index 100% rename from .github/wiki/Setup-development-environment.md rename to .github/wiki/Set-up-the-development-environment.md diff --git a/.github/workflows/publish-wiki.yml b/.github/workflows/publish-wiki.yml index 1af1fda9..85cafb49 100644 --- a/.github/workflows/publish-wiki.yml +++ b/.github/workflows/publish-wiki.yml @@ -6,7 +6,7 @@ on: - .github/wiki/** branches: - develop - - chore/gh-208-rename-folders + - feature/20-create-project-wiki workflow_dispatch: jobs: From 1ba916bcea4db5b8490905ace65dc68d8a1a5136 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Thu, 31 Aug 2023 16:01:16 +0700 Subject: [PATCH 14/18] [#20] Keep the CONTRIBUTING.md file with the link to wiki --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..83da4b67 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +Check out our [contributing guidelines](../../wiki/contributing) to get started. From 8bc447b7c3441ad9e1c028875e78bc87bd6ccc9b Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Thu, 31 Aug 2023 16:03:19 +0700 Subject: [PATCH 15/18] [#20] Remove the feature branch from the workflow --- .github/workflows/publish-wiki.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish-wiki.yml b/.github/workflows/publish-wiki.yml index 85cafb49..bb2a59c2 100644 --- a/.github/workflows/publish-wiki.yml +++ b/.github/workflows/publish-wiki.yml @@ -6,7 +6,6 @@ on: - .github/wiki/** branches: - develop - - feature/20-create-project-wiki workflow_dispatch: jobs: From 4f6e753af7c767ca0cdfcbf43c6f4677f15a55a5 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Thu, 31 Aug 2023 16:07:41 +0700 Subject: [PATCH 16/18] [#20] Correct grammar mistakes --- .github/wiki/Contributing-guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/wiki/Contributing-guidelines.md b/.github/wiki/Contributing-guidelines.md index 3dd1bf72..60bdefa0 100644 --- a/.github/wiki/Contributing-guidelines.md +++ b/.github/wiki/Contributing-guidelines.md @@ -9,4 +9,4 @@ If you encounter any issues or have feature requests, please create an issue on ## Development - Please refer to the [[Architecture Overview]] to understand the project's architecture first. -- Then, go through the guidelines under the "Contributing" menu on the right sidebar to set up the Development Environment, understading the way to create new modules, running tests, and publishing an new release to NPM. +- Then, go through the guidelines under the "Contributing" menu on the right sidebar to set up the Development Environment, understand the way to create new modules, run tests, and publish a new release to NPM. From 4c81034f85896d5ea6447aa7f893a98ddcb18263 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Thu, 31 Aug 2023 16:31:18 +0700 Subject: [PATCH 17/18] [#20] Fix incorrect Contributing guideline links --- CONTRIBUTING.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 83da4b67..417f31cf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1 +1 @@ -Check out our [contributing guidelines](../../wiki/contributing) to get started. +Check out our [contributing guidelines](../../wiki/contributing-guidelines) to get started. diff --git a/README.md b/README.md index 1986b06c..544595e9 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ For [usage instructions](../../wiki/getting-started) and documentation, please c ## Contributing -Check out our [contributing guidelines](../../wiki/contributing) to get started. +Check out our [contributing guidelines](../../wiki/contributing-guidelines) to get started. ## License From 21b13c7fd5e94223e6ed7c2a771071f35657abb9 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Thu, 31 Aug 2023 16:40:23 +0700 Subject: [PATCH 18/18] [#20] Correct the folder name --- .github/wiki/Architecture-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/wiki/Architecture-overview.md b/.github/wiki/Architecture-overview.md index 3975fde2..0361256f 100644 --- a/.github/wiki/Architecture-overview.md +++ b/.github/wiki/Architecture-overview.md @@ -42,8 +42,8 @@ The project has the following main files and folders: > **Note**!\ > The `./templates` and the `./src/generators` folder are the two main folders that are used to generate the project files -- The `./template` folder contains the addon's files and folders ready to be directly copy-pasted into the generated project if the related addon has been selected. These files serve as a starting point or "template" for the specific addon. +- The `./templates` folder contains the addon's files and folders ready to be directly copy-pasted into the generated project if the related addon has been selected. These files serve as a starting point or "template" for the specific addon. - On the other hand, the `./src/generators` folder houses the logic for determining which files need to be copied from this folder into the core project files. It includes instructions on what files should be formed based on the type of addon/module being added (common addons, AWS modules, or standard files). -In summary, while the `./template` folder provides the files and folders needed for the addon, the `./src/generators` folder handles the dynamic copying and integration of those files within the core project structure. \ No newline at end of file +In summary, while the `./templates` folder provides the files and folders needed for the addon, the `./src/generators` folder handles the dynamic copying and integration of those files within the core project structure.