97 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: CI Pipeline for the Backend and Frontend
 | 
						|
 | 
						|
on:
 | 
						|
  pull_request:
 | 
						|
    types: [opened, review_requested, synchronize]
 | 
						|
 | 
						|
jobs:
 | 
						|
  backend:
 | 
						|
    if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        node: ["16.16.0", "18.14.1"]
 | 
						|
        flavor: ["dev", "prod"]
 | 
						|
      fail-fast: false
 | 
						|
    runs-on: "ubuntu-latest"
 | 
						|
 | 
						|
    name: Backend (${{ matrix.flavor }}) - node ${{ matrix.node }}
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
        with:
 | 
						|
          path: ${{ matrix.node }}/${{ matrix.flavor }}
 | 
						|
 | 
						|
      - name: Setup Node
 | 
						|
        uses: actions/setup-node@v3
 | 
						|
        with:
 | 
						|
          node-version: ${{ matrix.node }}
 | 
						|
          registry-url: "https://registry.npmjs.org"
 | 
						|
 | 
						|
      - name: Install
 | 
						|
        if: ${{ matrix.flavor == 'dev'}}
 | 
						|
        run: npm ci
 | 
						|
        working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
 | 
						|
 | 
						|
      - name: Install (Prod dependencies only)
 | 
						|
        if: ${{ matrix.flavor == 'prod'}}
 | 
						|
        run: npm ci --omit=dev --omit=optional
 | 
						|
        working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
 | 
						|
 | 
						|
      - name: Lint
 | 
						|
        if: ${{ matrix.flavor == 'dev'}}
 | 
						|
        run: npm run lint
 | 
						|
        working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
 | 
						|
 | 
						|
      - name: Unit Tests
 | 
						|
        if: ${{ matrix.flavor == 'dev'}}
 | 
						|
        run: npm run test
 | 
						|
        working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: npm run build
 | 
						|
        working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
 | 
						|
 | 
						|
  frontend:
 | 
						|
    if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        node: ["16.16.0", "18.14.1"]
 | 
						|
        flavor: ["dev", "prod"]
 | 
						|
      fail-fast: false
 | 
						|
    runs-on: "ubuntu-latest"
 | 
						|
 | 
						|
    name: Frontend (${{ matrix.flavor }}) - node ${{ matrix.node }}
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
        with:
 | 
						|
          path: ${{ matrix.node }}/${{ matrix.flavor }}
 | 
						|
 | 
						|
      - name: Setup Node
 | 
						|
        uses: actions/setup-node@v3
 | 
						|
        with:
 | 
						|
          node-version: ${{ matrix.node }}
 | 
						|
          registry-url: "https://registry.npmjs.org"
 | 
						|
 | 
						|
      - name: Install (Prod dependencies only)
 | 
						|
        run: npm ci --omit=dev --omit=optional
 | 
						|
        if: ${{ matrix.flavor == 'prod'}}
 | 
						|
        working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
 | 
						|
 | 
						|
      - name: Install
 | 
						|
        if: ${{ matrix.flavor == 'dev'}}
 | 
						|
        run: npm ci
 | 
						|
        working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
 | 
						|
 | 
						|
      - name: Lint
 | 
						|
        if: ${{ matrix.flavor == 'dev'}}
 | 
						|
        run: npm run lint
 | 
						|
        working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
 | 
						|
 | 
						|
      # - name: Test
 | 
						|
      #   run: npm run test
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: npm run build
 | 
						|
        working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
 |