name: Test on: push: branches: - main pull_request: branches: - main env: CI: true jobs: pretest: name: Pre-Test (Node ${{ matrix.node }} / ${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest node: - 14 steps: - name: Clone Repository uses: actions/checkout@v2 - name: Set Node.js Version uses: actions/setup-node@v1 with: node-version: ${{ matrix.node }} - name: Determine Cache Directory id: npm-cache run: | echo "::set-output name=dir::$(npm config get cache)" - name: Configure Job Cache uses: actions/cache@v1 with: path: ${{ steps.npm-cache.outputs.dir }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install Dependencies run: npm ci - name: Run Tests run: npm run pretest spec: name: Spec (Node ${{ matrix.node }} / ${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest node: - 14 steps: - name: Clone Repository uses: actions/checkout@v2 - name: Set Node.js Version uses: actions/setup-node@v1 with: node-version: ${{ matrix.node }} - name: Determine Cache Directory id: npm-cache run: | echo "::set-output name=dir::$(npm config get cache)" - name: Configure Job Cache uses: actions/cache@v1 with: path: ${{ steps.npm-cache.outputs.dir }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install Dependencies run: npm ci - name: Run Tests run: npm run test-spec rendering: name: Rendering (Node ${{ matrix.node }} / ${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest node: - 14 steps: - name: Clone Repository uses: actions/checkout@v2 - name: Set Node.js Version uses: actions/setup-node@v1 with: node-version: ${{ matrix.node }} - name: Determine Cache Directory id: npm-cache run: | echo "::set-output name=dir::$(npm config get cache)" - name: Configure Job Cache uses: actions/cache@v1 with: path: ${{ steps.npm-cache.outputs.dir }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install Dependencies run: npm ci - name: Run Tests run: npm run test-rendering - name: Store Rendering Test Artifacts if: ${{ always() }} uses: actions/upload-artifact@v2 with: name: rendering-tests path: rendering/cases/**/actual.png