This is a generator for creating git workflow templates created for Genesis framework. This can be used in a non-genesis project as well, as no dependency on nx.
Following workflows are added to the Nx workspace when you execute this generator plugin.
Nx Affected Apps
- This workflow has to be manually triggered as required.
- Takes "Feature branch" and "Base Branch" as input as input.
- Compare "Feature Branch" with the "Base Branch" to list out the apps that are affected with the changes made in the "Feature Branch"
Nx Affected Apps - Pull Request
- This workflow gets triggered when a pull request is opened for any feature branch.
- Provides the following output
- List of apps that are affected with the changes made in the feature branch
- A template to unit test the apps that are affected with the changes
- Provided dummy templates for workflow stages viz., Build Image, Publish Image
Nx Affected Apps - Master(Base Branch)
- This workflow gets triggered when a commit is pushed to base branch(When a PR is merged to the base branch).
- Provides the following output
- List of apps that are affected with the changes made in the latest commit
- A template to unit test the apps that are affected with the changes
- Provided dummy templates for workflow stages viz., Build Image, Publish Image
Nx Build App
- This workflow has to be manually triggered as required.
- Takes "App name" as input.
- Has templates to setup, test and build the app specified in the input while triggering.
Publish "git-workflows "Plugin [Optional]
-
Clone the Genesis Repository
- git clone https://pscode.lioncloud.net/psinnersource/xt/micro-frontend/genesis.git
-
Build the plugin generator
- nx run git-workflows:build
-
Publish the plugin generator to a registry
- npm publish ./dist/packages/git-workflows --registry [REGISTRY_URL]
Using "git-workflows" Plugin
-
Create a new workspace
- npx create-nx-workspace@latest
-
Install the plugin
- npm install -D @genesisx/git-workflows@[VERSION] --registry [REGISTRY_URL]`
-
Execute the plugin Use NX GUI in VS to execute the workflow (or) Execute the following command
- `npx nx generate @genesisx/git-workflows:git-workflows --no-interactive `
-
Verify the generated workflows Verify if a new directory with name ".github" is created in the root of your workspace. Verify if the following files are created in the "./.github" directory of your workspace
- nx-affected-apps.yaml - nx-affected-master.yaml - nx-affected-pull-request.yaml - nx-build-app.yaml