Replaced checked in package-lock.json by regenerated one. Ran ng update @angular/core@20 @angular/cli@20 Ran npm install @angular-builders/jest@^20.0.0 @fortawesome/angular-fontawesome@^3.0.0 @swimlane/ngx-graph@^11 Ran npm install ngx-mat-select-search@^8.0.2. Ran ng update @angular/material@20. Updated all eslint and typescript to the latest versions. Removed @angular-devkit/schematics. Updated fontawesome. Updated rxjs and tslib. Moved required node version from 16 to 20. Updated jest-preset-angular. Set preserveWhitespaces to false. Corrected two type declarations in two typescript files to make ng serve run without errors. Removed unused angular-devkit/schematics from view-user.component.ts . Updated list of supported browsers. Upgraded prettier. Ran prettier . --write the first time. Ran prettier . --write the second time. Ran ng generate @angular/core:inject with defaults, excepted a handful of files. Fixed remaining eslint problems. Added dist directory to ignores in eslint.config.js. Let prettier fix formatting, almost everything is just line breaks. Made htmlhint ignore @if and @for Angular constructs. Updated node version in Github workflow to 22.12.0 (build.yml). Updated .env.ts. Updated Angular datetime format strings from YYYY-MM-DD to yyyy-MM-dd. Merged changes from dev into angular20 branch.
72 lines
2.1 KiB
YAML
72 lines
2.1 KiB
YAML
name: build-run
|
||
|
||
# Controls when the action will run.
|
||
on:
|
||
# Triggers the workflow on push or pull request events for specific branches
|
||
push:
|
||
branches: [main, dev, angular-update-18]
|
||
pull_request:
|
||
branches: [main, dev, angular-update-18]
|
||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||
jobs:
|
||
# This workflow contains a single job called "build"
|
||
build:
|
||
# The type of runner that the job will run on
|
||
name: Run Lint, Build and Deploy
|
||
runs-on: ubuntu-latest
|
||
|
||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||
steps:
|
||
- name: Checkout code
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Use Node.js 22
|
||
uses: actions/setup-node@v3
|
||
with:
|
||
# no support for lts as of now with github actions.
|
||
# issue link : https://github.com/actions/setup-node/issues/26
|
||
# lts/gallium node v19.7.0 (npm v9.5.0)
|
||
node-version: '22.12.0'
|
||
|
||
- name: Remove node_modules
|
||
run: rm -rf node_modules
|
||
|
||
- name: Run CI
|
||
run: npm ci
|
||
|
||
- name: Fallback – Clean install with regenerated lockfile
|
||
if: failure()
|
||
run: |
|
||
echo "npm ci failed — regenerating lockfile and retrying"
|
||
rm -rf node_modules package-lock.json
|
||
npm install
|
||
|
||
- name: Run eslint
|
||
run: npx eslint .
|
||
|
||
- name: Run stylelint
|
||
run: npx stylelint "src/**/*.scss"
|
||
|
||
- name: Run prettier
|
||
run: npx prettier . --check
|
||
|
||
- name: Run HTMLHint
|
||
run: npx htmlhint "src" --config .htmlhintrc
|
||
|
||
- name: Run production build
|
||
run: npm run build:prod
|
||
|
||
- name: Deploy to github pages
|
||
if: ${{ github.event_name == 'push' }}
|
||
uses: JamesIves/github-pages-deploy-action@v4
|
||
with:
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
BRANCH: gh-pages
|
||
FOLDER: dist/web-app
|
||
#without preserve it only builds if you have untracked files
|
||
PRESERVE: true
|
||
# github user name and email shows up in the logs,
|
||
# so it would be better to make it silent.
|
||
SILENT: true
|