name: CI on: push: branches: - dev - master pull_request: branches: - dev - master env: NODE_VERSION: 16 NODE_OPTIONS: --max_old_space_size=6144 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: lint: name: Lint and check format runs-on: ubuntu-latest steps: - name: Check out files from GitHub uses: actions/checkout@v3.3.0 - name: Set up Node ${{ env.NODE_VERSION }} uses: actions/setup-node@v3.6.0 with: node-version: ${{ env.NODE_VERSION }} cache: yarn - name: Install dependencies run: yarn install --immutable - name: Check for duplicate dependencies run: yarn dedupe --check - name: Build resources run: ./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data gather-gallery-pages - name: Run eslint run: yarn run lint:eslint --quiet - name: Run tsc run: yarn run lint:types - name: Run prettier run: yarn run lint:prettier test: name: Run tests runs-on: ubuntu-latest steps: - name: Check out files from GitHub uses: actions/checkout@v3.3.0 - name: Set up Node ${{ env.NODE_VERSION }} uses: actions/setup-node@v3.6.0 with: node-version: ${{ env.NODE_VERSION }} cache: yarn - name: Install dependencies run: yarn install --immutable - name: Build resources run: ./node_modules/.bin/gulp build-translations build-locale-data - name: Run Tests run: yarn run test build: name: Build frontend needs: [lint, test] runs-on: ubuntu-latest steps: - name: Check out files from GitHub uses: actions/checkout@v3.3.0 - name: Set up Node ${{ env.NODE_VERSION }} uses: actions/setup-node@v3.6.0 with: node-version: ${{ env.NODE_VERSION }} cache: yarn - name: Install dependencies run: yarn install --immutable - name: Build Application run: ./node_modules/.bin/gulp build-app env: IS_TEST: "true" supervisor: name: Build supervisor needs: [lint, test] runs-on: ubuntu-latest steps: - name: Check out files from GitHub uses: actions/checkout@v3.3.0 - name: Set up Node ${{ env.NODE_VERSION }} uses: actions/setup-node@v3.6.0 with: node-version: ${{ env.NODE_VERSION }} cache: yarn - name: Install dependencies run: yarn install --immutable - name: Build Application run: ./node_modules/.bin/gulp build-hassio env: IS_TEST: "true"