remove period #1224
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
env: | |
NODE_VERSION_USED_FOR_DEVELOPMENT: 18 | |
jobs: | |
lint: | |
name: Lint source files | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
cache: npm | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Install Dependencies | |
run: npm ci --ignore-scripts | |
- name: Lint ESLint | |
run: npm run lint | |
- name: Check Types | |
run: npm run check | |
- name: Lint Prettier | |
run: npm run prettier:check | |
- name: Spellcheck | |
run: npm run check:spelling | |
checkForCommonlyIgnoredFiles: | |
name: Check for commonly ignored files | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Check if commit contains files that should be ignored | |
run: | | |
git clone --depth 1 https://github.com/github/gitignore.git && | |
cat gitignore/Node.gitignore $(find gitignore/Global -name "*.gitignore" | grep -v ModelSim) > all.gitignore && | |
if [[ "$(git ls-files -iX all.gitignore)" != "" ]]; then | |
echo "::error::Please remove these files:" | |
git ls-files -iX all.gitignore | |
exit 1 | |
fi | |
checkPackageLock: | |
name: Check health of package-lock.json file | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
cache: npm | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Install Dependencies | |
run: npm ci --ignore-scripts | |
- name: Check that package-lock.json doesn't have conflicts | |
run: npm ls --depth 999 | |
- name: Run npm install | |
run: npm install --force --package-lock-only --ignore-scripts --engine-strict --strict-peer-deps | |
- name: Check that package-lock.json is in sync with package.json | |
run: git diff --exit-code package-lock.json | |
coverage: | |
name: Measure test coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
cache: npm | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Install Dependencies | |
run: npm ci --ignore-scripts | |
- name: Run tests and measure code coverage | |
run: npm run testonly:cover | |
- name: Upload coverage to Codecov | |
if: ${{ always() }} | |
uses: codecov/codecov-action@v1 | |
with: | |
file: ./coverage/coverage-final.json | |
fail_ci_if_error: true | |
test: | |
name: Test GraphQL v${{ matrix.graphql_version }} with Node v${{ matrix.node_version_to_setup }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node_version_to_setup: [12, 14, 16, 17, 18] | |
graphql_version: [14, 15, 16] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Setup Node.js v${{ matrix.node_version_to_setup }} | |
uses: actions/setup-node@v2 | |
with: | |
cache: npm | |
node-version: ${{ matrix.node_version_to_setup }} | |
- name: Install Dependencies | |
run: npm ci --ignore-scripts | |
- name: Force GraphQL Version | |
run: npm install graphql@${{ matrix.graphql_version }} --save=false | |
- name: Run Tests | |
run: npm run testonly | |
build: | |
name: Build with GraphQL v${{ matrix.graphql_version }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
graphql_version: [14, 15, 16] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
- name: Setup Node.js v${{ matrix.node_version_to_setup }} | |
uses: actions/setup-node@v2 | |
with: | |
cache: npm | |
node-version: ${{ matrix.node_version_to_setup }} | |
- name: Install Dependencies | |
run: npm ci --ignore-scripts | |
- name: Force GraphQL Version | |
run: npm install graphql@${{ matrix.graphql_version }} --save=false | |
- name: Run Build | |
run: npm run build | |
benchmark: | |
name: Run benchmark | |
runs-on: ubuntu-latest | |
if: github.event_name == 'pull_request' | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Deepen cloned repo | |
env: | |
BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
run: 'git fetch --depth=1 origin $BASE_SHA:refs/tags/BASE' | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
cache: npm | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Install Dependencies | |
run: npm ci --ignore-scripts | |
- name: Run Benchmark | |
run: 'npm run benchmark -- --revs HEAD BASE' | |
diff-npm-package: | |
name: Diff content of NPM package | |
runs-on: ubuntu-latest | |
if: github.event_name == 'pull_request' | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Deepen cloned repo | |
env: | |
BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
run: 'git fetch --depth=1 origin $BASE_SHA:refs/tags/BASE' | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
cache: npm | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Install Dependencies | |
run: npm ci --ignore-scripts | |
- name: Generate report | |
run: 'node resources/diff-npm-package.js BASE HEAD' | |
- name: Upload generated report | |
uses: actions/upload-artifact@v2 | |
with: | |
name: npm-dist-diff.html | |
path: ./npm-dist-diff.html | |
if-no-files-found: ignore | |
deploy-to-npm-branch: | |
name: Deploy to `npm` branch | |
runs-on: ubuntu-latest | |
if: | | |
github.event_name == 'push' && | |
github.repository == 'yaacovCR/graphql-executor' && | |
github.ref == 'refs/heads/main' | |
needs: [test, lint, build, checkForCommonlyIgnoredFiles] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
cache: npm | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Install Dependencies | |
run: npm ci --ignore-scripts | |
- name: Build NPM package | |
run: npm run build:npm | |
- name: Deploy to `npm` branch | |
uses: ./.github/actions/deploy-dir-as-branch | |
with: | |
src_dir: npmDist | |
target_branch: npm | |
deploy-to-deno-branch: | |
name: Deploy to `deno` branch | |
runs-on: ubuntu-latest | |
if: | | |
github.event_name == 'push' && | |
github.repository == 'yaacovCR/graphql-executor' && | |
github.ref == 'refs/heads/main' | |
needs: [test, lint, build, checkForCommonlyIgnoredFiles] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
cache: npm | |
node-version: ${{ env.NODE_VERSION_USED_FOR_DEVELOPMENT }} | |
- name: Install Dependencies | |
run: npm ci --ignore-scripts | |
- name: Build Deno package | |
run: npm run build:deno | |
- name: Deploy to `deno` branch | |
uses: ./.github/actions/deploy-dir-as-branch | |
with: | |
src_dir: denoDist | |
target_branch: deno |