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.
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.
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.json
andangular.json
files are located. Defaults to./
.
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.
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
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/node
codelyzer
ng-packagr
rxjs
tsickle
tslib
tslint
ts-node
typescript
zone.js
- Replace the
angular.json
library builder (ng-packagr) based on the angular version.- Use
@angular-devkit/build-ng-packagr:build
for version prior (<) Angular 10.1 - Use
@angular-devkit/build-angular:ng-packagr
for version post (>=) Angular 10.1
- Use
- Remove
allowedCommonJsDependencies
options on Angular versions under 10
We would love you to contribute to @ngworker/angular-versions-action
, pull requests are welcome! Please see the CONTRIBUTING.md for more information.
Thanks goes to these wonderful people (emoji key):
Nacho Vazquez 💬 🐛 💼 💻 📖 💡 🤔 🚇 🚧 📆 👀 🛡️ |
Lars Gyrup Brink Nielsen 🐛 💻 📖 💡 🤔 🚇 🚧 🧑🏫 📦 🔌 👀 |
Tim Deschryver 📖 |
profanis 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!
The scripts and documentation in this project are released under the MIT License