GitHub Action - Match Angular Versions
December 21, 2021 ยท View on GitHub
This GitHub Action (written in JavaScript) modifies the root package.json of a project and replaces the version of all Angular related dependencies for given base version.
When necessary it updates the angular.json to use the correct builder.
Usage
Pre-requisites
Create a workflow .yml file in your repositories .github/workflows directory. An example workflow is available below. For more information, reference the GitHub Help Documentation for Creating a workflow file.
Inputs
angular-version: The base Angular version used to match the dependency version. Ex: 8.0.x, 10.0.x. To check the full list of supported versions, see supported versions.root-path: The path to the root folder of the project where thepackage.jsonandangular.jsonfiles are located. Defaults to./.
Example workflow - match Angular versions
name: CI workflow
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
angular-version:
- 6.0.x
- 6.1.x
- 7.0.x
- 7.1.x
- 7.2.x
- 8.0.x
- 8.1.x
- 8.2.x
- 9.0.x
- 9.1.x
- 10.0.x
- 10.1.x
- 10.2.x
- 11.0.x
- 11.1.x
- 11.2.x
- 12.0.x
- 12.1.x
- 12.2.x
- 13.0.x
steps:
- uses: actions/checkout@v2
- name: Use Node.js 12.x
uses: actions/setup-node@v2
with:
node-version: 12.x
- name: Use Angular ${{ matrix.angular-version }}
uses: ngworker/angular-versions-action@v4
with:
angular-version: ${{ matrix.angular-version }}
- run: yarn install
- run: yarn lint
- run: yarn build
- run: yarn test
This example use the github matrix to build, lint and test your code against different versions of Angular. This should be specially useful for library authors.
Supported Angular versions
At the moment this actions supports a limited set of Angular versions listed below.
- 6.0.x
- 6.1.x
- 7.0.x
- 7.1.x
- 7.2.x
- 8.0.x
- 8.1.x
- 8.2.x
- 9.0.x
- 9.1.x
- 10.0.x
- 10.1.x
- 10.2.x
- 11.0.x
- 11.1.x
- 11.2.x
- 12.0.x
- 12.1.x
- 12.2.x
- 13.0.x
Managed packages
The following packages are managed by this action:
@angular/animations@angular/cdk@angular/cli@angular/common@angular/compiler@angular/compiler-cli@angular/core@angular-builders/jest@angular-devkit/build-angular@angular-devkit/build-ng-packagr@angular-devkit/schematics-cli@angular/elements@angular/forms@angular/google-maps@angular/material@angular/platform-browser@angular/platform-browser-dynamic@angular/router@angular/youtube-player@types/nodecodelyzerng-packagrrxjstsickletslibtslintts-nodetypescriptzone.js
Additional features
- Replace the
angular.jsonlibrary builder (ng-packagr) based on the angular version.- Use
@angular-devkit/build-ng-packagr:buildfor version prior (<) Angular 10.1 - Use
@angular-devkit/build-angular:ng-packagrfor version post (>=) Angular 10.1
- Use
- Remove
allowedCommonJsDependenciesoptions on Angular versions under 10
Contributing
We would love you to contribute to @ngworker/angular-versions-action, pull requests are welcome! Please see the CONTRIBUTING.md for more information.
Contributors
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
License
The scripts and documentation in this project are released under the MIT License