name: unit-tests on: pull_request: branches: - 'dev*' - 'releases/v*' push: branches: - 'dev*' tags-ignore: - '*.*' jobs: unit-tests: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 'v20.10.0' registry-url: 'https://registry.npmjs.org' - name: Install Yarn run: npm install -g yarn - name: Install and Test run: | yarn install --frozen-lockfile yarn lint:check yarn lint:format:check yarn test - name: Uploade CodeCov Report uses: codecov/codecov-action@v3.1.4 with: token: ${{ secrets.CODECOV_TOKEN }} build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 'v20.10.0' registry-url: 'https://registry.npmjs.org' - name: Install Yarn run: npm install -g yarn - name: Build lib run: | yarn install --frozen-lockfile yarn build - name: Rebuild production node_modules run: | yarn install --production --frozen-lockfile ls node_modules - name: artifact uses: actions/upload-artifact@v4 with: name: dist path: | lib node_modules integration: runs-on: ubuntu-latest needs: build strategy: matrix: branch: ['gh-pages', 'no-pages'] commit: ['singleCommit', 'add commits'] max-parallel: 1 steps: - name: Checkout uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/setup-node@v4 with: node-version: 'v20.10.0' registry-url: 'https://registry.npmjs.org' - name: Download artifact uses: actions/download-artifact@v3 with: name: dist - name: Deploy id: unmodified uses: ./ with: folder: integration branch: ${{ matrix.branch }} single-commit: ${{ matrix.commit == 'singleCommit' }} dry-run: true # Usually, this should be skipped, but if the upstream gh-pages # branch doesn't match ours, it should still be a success. - name: Check step output run: | [[ \ ${{steps.unmodified.outputs.deployment-status}} = skipped || \ ${{steps.unmodified.outputs.deployment-status}} = success \ ]] - name: Tweak content to publish to existing branch if: ${{ matrix.branch == 'gh-pages' }} run: | echo "" >> integration/index.html - name: Deploy with modifications to existing branch id: modified uses: ./ if: ${{ matrix.branch == 'gh-pages' }} with: folder: integration branch: ${{ matrix.branch }} single-commit: ${{ matrix.commit == 'singleCommit' }} dry-run: true # The modified deployment should be a success, and not skipped. - name: Check step output if: ${{ matrix.branch == 'gh-pages' }} run: | [[ \ ${{steps.modified.outputs.deployment-status}} = success \ ]]