Files
test-repo/.github/workflows/prod-test.yml
T

172 lines
4.2 KiB
YAML

name: Prod
on:
push:
branches:
- main
- patch-release
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
cache: "yarn"
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Build Package
run: yarn build
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: dist
path: dist
# This step calls `git reset`
# It should be the last step
- name: Check Sizes
if: ${{ github.event_name == 'pull_request' && startsWith(github.head_ref, 'dependabot/npm_and_yarn/') }}
uses: preactjs/compressed-size-action@2.5.0
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
pattern: "./dist/**/*"
compression: none
lint:
name: Lint
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
cache: "yarn"
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Download Artifact
uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Lint Code
run: yarn test:dist-lint
test:
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
os:
- "ubuntu-latest"
- "macos-latest"
- "windows-latest"
node:
- "16.10.0"
- "14"
- "12"
- "10"
include:
- os: "ubuntu-latest"
node: "16.10.0"
FULL_TEST: true
exclude:
- os: "macos-latest"
node: "14"
- os: "macos-latest"
node: "12"
- os: "windows-latest"
node: "14"
- os: "windows-latest"
node: "12"
env:
FULL_TEST: ${{ matrix.FULL_TEST }}
name: Node.js ${{ matrix.node }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
needs: [build]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: "yarn"
- name: Config `ignore-engines=true` (Node.js 10)
if: ${{ matrix.node == '10' }}
run: yarn config set ignore-engines true
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Download Artifact
uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Run Tests (macOS)
if: ${{ matrix.os == 'macos-latest' }}
run: yarn test:dist --maxWorkers=4
- name: Run Tests (Linux and Windows)
if: ${{ matrix.os != 'macos-latest' }}
run: yarn test:dist --maxWorkers=2
- name: Run Tests (standalone) (macOS)
if: ${{ matrix.os == 'macos-latest' }}
run: yarn test:dist-standalone --maxWorkers=4
- name: Run Tests (standalone) (Linux and Windows)
if: ${{ matrix.os != 'macos-latest' }}
run: yarn test:dist-standalone --maxWorkers=2
# #8073 test
- name: Run Tests (PRETTIER_FALLBACK_RESOLVE)
run: yarn test "tests/integration/__tests__/(config|plugin)"
env:
NODE_ENV: production
PRETTIER_FALLBACK_RESOLVE: true
cli:
name: CLI
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Checkout
uses: actions/checkout@v2.4.0
- name: Setup Node.js
uses: actions/setup-node@v2.5.1
with:
node-version: "0.10.48"
- name: Download Artifact
uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Validate Node.js Version
run: node -v | grep "v0.10.48" || exit 1
- name: Run CLI on Node.js v0.10.48
run: node dist/bin-prettier --version 2>&1 >/dev/null | grep "prettier requires at least version 10.13.0 of Node, please upgrade" || exit 1