Files
cbsnexora/.github/workflows/build.yml
T

72 lines
2.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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, dev-angular-19]
pull_request:
branches: [main, dev, dev-angular-19]
# 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