ci.yml 7.3 KB
Newer Older
E
Edward Thomson 已提交
1 2
name: CI

J
João Moreno 已提交
3 4
on:
  push:
5 6 7 8 9 10 11
    branches:
      - master
      - release/*
  pull_request:
    branches:
      - master
      - release/*
E
Edward Thomson 已提交
12 13

jobs:
14
  hygiene:
15
    name: Hygiene and Layers check
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
    runs-on: ubuntu-latest
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    steps:
      - uses: actions/checkout@v2

      - uses: actions/setup-node@v2-beta
        with:
          node-version: 12

      - name: Cache node modules
        id: cacheNodeModules
        uses: actions/cache@v2
        with:
          path: '**/node_modules'
          key: ${{ runner.os }}-cacheNodeModules-${{ hashFiles('.yarnrc', 'remote/.yarnrc', '**/yarn.lock', '!**/node_modules/**/yarn.lock', '!**/.*/**/yarn.lock') }}
          restore-keys: ${{ runner.os }}-cacheNodeModules-

      - name: Cache /build/ scripts
        id: cacheBuildScripts
        uses: actions/cache@v2
        with:
          path: build/**/*.js
          key: ${{ runner.os }}-cacheBuildScripts-${{ hashFiles('build/yarn.lock', 'build/tsconfig.json', 'build/tsconfig.build.json', 'build/**/*.ts', '!**/node_modules/**/*.ts') }}

      - name: Execute yarn
42 43 44
        if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' || steps.cacheBuildScripts.outputs.cache-hit != 'true' }}
        env:
          PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
45 46 47 48 49
        run: yarn --frozen-lockfile

      - name: Run Hygiene Checks
        run: yarn gulp hygiene

50 51 52 53 54 55
      - name: Download Playwright
        run: node ./node_modules/playwright/install.js

      - name: Run Valid Layers Checks
        run: yarn valid-layers-check

56
  linux:
57
    name: Linux
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
    runs-on: ubuntu-latest
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    steps:
      - uses: actions/checkout@v2

      # TODO: rename azure-pipelines/linux/xvfb.init to github-actions
      - name: Setup Build Environment
        run: |
          sudo apt-get update
          sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
          sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
          sudo chmod +x /etc/init.d/xvfb
          sudo update-rc.d xvfb defaults
          sudo service xvfb start

      - uses: actions/setup-node@v2-beta
        with:
          node-version: 12

      - name: Cache node modules
A
Alexandru Dima 已提交
79
        id: cacheNodeModules
80 81
        uses: actions/cache@v2
        with:
A
Alexandru Dima 已提交
82 83 84
          path: '**/node_modules'
          key: ${{ runner.os }}-cacheNodeModules-${{ hashFiles('.yarnrc', 'remote/.yarnrc', '**/yarn.lock', '!**/node_modules/**/yarn.lock', '!**/.*/**/yarn.lock') }}
          restore-keys: ${{ runner.os }}-cacheNodeModules-
85

A
Alexandru Dima 已提交
86 87
      - name: Cache /build/ scripts
        id: cacheBuildScripts
88 89 90
        uses: actions/cache@v2
        with:
          path: build/**/*.js
A
Alexandru Dima 已提交
91
          key: ${{ runner.os }}-cacheBuildScripts-${{ hashFiles('build/yarn.lock', 'build/tsconfig.json', 'build/tsconfig.build.json', 'build/**/*.ts', '!**/node_modules/**/*.ts') }}
92

A
Alexandru Dima 已提交
93 94 95 96 97 98 99 100 101 102
      - name: Cache playwright
        id: cachePlaywright
        uses: actions/cache@v2
        with:
          path: ~/.cache/ms-playwright
          key: ${{ runner.os }}-cachePlaywright-${{ hashFiles('yarn.lock') }}

      - name: Execute yarn
        if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' || steps.cacheBuildScripts.outputs.cache-hit != 'true' || steps.cachePlaywright.outputs.cache-hit != 'true' }}
        run: yarn --frozen-lockfile
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

      - name: Download Electron
        run: yarn electron x64

      - name: Compile Sources
        run: yarn compile

      - name: Download Built-in Extensions
        run: yarn download-builtin-extensions

      - name: Run Unit Tests (Electron)
        run: DISPLAY=:10 ./scripts/test.sh

      - name: Run Unit Tests (Browser)
        run: DISPLAY=:10 yarn test-browser --browser chromium

      - name: Run Integration Tests (Electron)
        run: DISPLAY=:10 ./scripts/test-integration.sh
121

122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
  # windows:
  #   runs-on: windows-2016
  #   env:
  #     CHILD_CONCURRENCY: "1"
  #     GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  #   steps:
  #   - uses: actions/checkout@v1
  #   - uses: actions/setup-node@v1
  #     with:
  #       node-version: 10
  #   - uses: actions/setup-python@v1
  #     with:
  #       python-version: '2.x'
  #   - run: yarn --frozen-lockfile
  #     name: Install Dependencies
  #   - run: yarn electron
  #     name: Download Electron
  #   - run: yarn gulp hygiene
  #     name: Run Hygiene Checks
  #   - run: yarn monaco-compile-check
  #     name: Run Monaco Editor Checks
  #   - run: yarn valid-layers-check
  #     name: Run Valid Layers Checks
  #   - run: yarn compile
  #     name: Compile Sources
  #   - run: yarn download-builtin-extensions
  #     name: Download Built-in Extensions
  #   - run: .\scripts\test.bat --tfs "Unit Tests"
  #     name: Run Unit Tests (Electron)
  #   - run: yarn test-browser --browser chromium
  #     name: Run Unit Tests (Browser)
  #   - run: .\scripts\test-integration.bat --tfs "Integration Tests"
  #     name: Run Integration Tests (Electron)
E
Edward Thomson 已提交
155

156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
  # darwin:
  #   runs-on: macos-latest
  #   env:
  #     CHILD_CONCURRENCY: "1"
  #     GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  #   steps:
  #   - uses: actions/checkout@v1
  #   - uses: actions/setup-node@v1
  #     with:
  #       node-version: 10
  #   - run: yarn --frozen-lockfile
  #     name: Install Dependencies
  #   - run: yarn electron x64
  #     name: Download Electron
  #   - run: yarn gulp hygiene
  #     name: Run Hygiene Checks
  #   - run: yarn monaco-compile-check
  #     name: Run Monaco Editor Checks
  #   - run: yarn valid-layers-check
  #     name: Run Valid Layers Checks
  #   - run: yarn compile
  #     name: Compile Sources
  #   - run: yarn download-builtin-extensions
  #     name: Download Built-in Extensions
  #   - run: ./scripts/test.sh --tfs "Unit Tests"
  #     name: Run Unit Tests (Electron)
  #   - run: yarn test-browser --browser chromium --browser webkit
  #     name: Run Unit Tests (Browser)
  #   - run: ./scripts/test-integration.sh --tfs "Integration Tests"
  #     name: Run Integration Tests (Electron)
186 187

  monaco:
188
    name: Monaco Editor checks
189
    runs-on: ubuntu-latest
190 191 192
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    steps:
A
Alex Dima 已提交
193
      - uses: actions/checkout@v2
194

A
Alex Dima 已提交
195
      - uses: actions/setup-node@v2-beta
J
João Moreno 已提交
196
        with:
A
Alex Dima 已提交
197
          node-version: 12
198

199
      - name: Cache node modules
A
Alexandru Dima 已提交
200
        id: cacheNodeModules
201 202
        uses: actions/cache@v2
        with:
A
Alexandru Dima 已提交
203 204 205
          path: '**/node_modules'
          key: ${{ runner.os }}-cacheNodeModules-${{ hashFiles('.yarnrc', 'remote/.yarnrc', '**/yarn.lock', '!**/node_modules/**/yarn.lock', '!**/.*/**/yarn.lock') }}
          restore-keys: ${{ runner.os }}-cacheNodeModules-
206

A
Alexandru Dima 已提交
207 208
      - name: Cache /build/ scripts
        id: cacheBuildScripts
209 210 211
        uses: actions/cache@v2
        with:
          path: build/**/*.js
A
Alexandru Dima 已提交
212
          key: ${{ runner.os }}-cacheBuildScripts-${{ hashFiles('build/yarn.lock', 'build/tsconfig.json', 'build/tsconfig.build.json', 'build/**/*.ts', '!**/node_modules/**/*.ts') }}
213

A
Alexandru Dima 已提交
214 215
      - name: Execute yarn
        if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' || steps.cacheBuildScripts.outputs.cache-hit != 'true' }}
216 217
        env:
          PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
A
Alexandru Dima 已提交
218
        run: yarn --frozen-lockfile
219

220 221 222 223 224
      - name: Run Monaco Editor Checks
        run: yarn monaco-compile-check

      - name: Editor Distro & ESM Bundle
        run: yarn gulp editor-esm-bundle