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] pull_request: branches: [main, dev, angular-update] # 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 and Deploy runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 - name: Use Node.js 22 uses: actions/setup-node@v1 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.9.0' - name: Run CI run: npm ci - name: Run eslint run: npx ng lint - name: Run stylelint run: npx stylelint "src/**/*.scss" - name: Run prettier run: npx prettier . --check - name: Run 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