Browse Source

Merge pull request #19124 from munrocket/github-ci

CI: Travis -> Github Actions
Mr.doob 5 years ago
parent
commit
b1b0a31627
2 changed files with 125 additions and 36 deletions
  1. 125 0
      .github/workflows/ci.yml
  2. 0 36
      .travis.yml

+ 125 - 0
.github/workflows/ci.yml

@@ -0,0 +1,125 @@
+name: CI
+
+on:
+  pull_request:
+    paths-ignore:
+      - 'docs/**'
+  push:
+    paths-ignore:
+      - 'docs/**'
+
+jobs:
+
+  lint:
+    name: "Linting"
+    runs-on: ubuntu-latest
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v2
+      - name: Install node
+        uses: actions/setup-node@v1
+        with:
+          node-version: '10.x'
+      - name: Restore cache
+        uses: actions/cache@v1
+        env:
+          cache-name: cache-node-modules
+        with:
+          path: ~/.npm
+          key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-ci-${{ env.cache-name }}-
+            ${{ runner.os }}-ci-
+            ${{ runner.os }}-
+      - name: Install packages
+        run: npm ci
+
+      - name: === Linting ===
+        run: npm run test-lint
+
+  unit:
+    name: "Unit testing"
+    runs-on: ubuntu-latest
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v2
+      - name: Install node
+        uses: actions/setup-node@v1
+        with:
+          node-version: '10.x'
+      - name: Restore cache
+        uses: actions/cache@v1
+        env:
+          cache-name: cache-node-modules
+        with:
+          path: ~/.npm
+          key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-ci-${{ env.cache-name }}-
+            ${{ runner.os }}-ci-
+            ${{ runner.os }}-
+      - name: Install packages
+        run: npm ci
+
+      - name: === Unit testing ===
+        run: npm run test-unit
+
+  e2e:
+    name: "E2E testing"
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        CI: [ 0, 1, 2, 3 ]
+    env:
+      CI: ${{ matrix.CI }}
+      FORCE_COLOR: 1
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v2
+      - name: Install node
+        uses: actions/setup-node@v1
+        with:
+          node-version: '10.x'
+      - name: Restore cache
+        uses: actions/cache@v1
+        env:
+          cache-name: cache-node-modules
+        with:
+          path: ~/.npm
+          key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-ci-${{ env.cache-name }}-
+            ${{ runner.os }}-ci-
+            ${{ runner.os }}-
+      - name: Install packages
+        run: npm ci && sudo apt-get install xvfb && npm run build
+
+      - name: === E2E testing ===
+        run: xvfb-run --auto-servernum npm run test-e2e
+
+  e2e-cov:
+    name: "Ready for release"
+    runs-on: ubuntu-latest
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v2
+      - name: Install node
+        uses: actions/setup-node@v1
+        with:
+          node-version: '10.x'
+      - name: Restore cache
+        uses: actions/cache@v1
+        env:
+          cache-name: cache-node-modules
+        with:
+          path: ~/.npm
+          key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-ci-${{ env.cache-name }}-
+            ${{ runner.os }}-ci-
+            ${{ runner.os }}-
+      - name: Install packages
+        run: npm ci
+
+      - name: === Ready for release ===
+        run: npm run test-e2e-cov

+ 0 - 36
.travis.yml

@@ -1,36 +0,0 @@
-language: node_js
-node_js: node
-services: xvfb
-cache: bundler
-
-jobs:
-  include:
-
-    - &lint-n-unit
-      stage: lint & unit
-      name: lint
-      script: npm run test-lint
-    - <<: *lint-n-unit
-      name: unit
-      script: npm run test-unit
-
-    - &e2e
-      stage: e2e
-      name: e2e
-      script: npm run test-e2e
-      env: FORCE_COLOR=0 CI=0
-    - <<: *e2e
-      env: FORCE_COLOR=0 CI=1
-    - <<: *e2e
-      env: FORCE_COLOR=0 CI=2
-    - <<: *e2e
-      env: FORCE_COLOR=0 CI=3
-
-    - &e2e-cov
-      stage: e2e-cov
-      name: e2e-cov
-      script: npm run test-e2e-cov
-
-  allow_failures:
-
-    - stage: e2e-cov