ci.yml 7.1 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 15 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 42 43 44 45 46 47
  hygiene:
    name: Hygiene check
    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
        if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' || steps.cacheBuildScripts.outputs.cache-hit != 'true' || steps.cachePlaywright.outputs.cache-hit != 'true' }}
        run: yarn --frozen-lockfile

      - name: Run Hygiene Checks
        run: yarn gulp hygiene

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
  linux:
    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 已提交
70
        id: cacheNodeModules
71 72
        uses: actions/cache@v2
        with:
A
Alexandru Dima 已提交
73 74 75
          path: '**/node_modules'
          key: ${{ runner.os }}-cacheNodeModules-${{ hashFiles('.yarnrc', 'remote/.yarnrc', '**/yarn.lock', '!**/node_modules/**/yarn.lock', '!**/.*/**/yarn.lock') }}
          restore-keys: ${{ runner.os }}-cacheNodeModules-
76

A
Alexandru Dima 已提交
77 78
      - name: Cache /build/ scripts
        id: cacheBuildScripts
79 80 81
        uses: actions/cache@v2
        with:
          path: build/**/*.js
A
Alexandru Dima 已提交
82
          key: ${{ runner.os }}-cacheBuildScripts-${{ hashFiles('build/yarn.lock', 'build/tsconfig.json', 'build/tsconfig.build.json', 'build/**/*.ts', '!**/node_modules/**/*.ts') }}
83

A
Alexandru Dima 已提交
84 85 86 87 88 89 90 91 92 93
      - 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
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

      - name: Download Electron
        run: yarn electron x64

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

      - 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
115

116 117 118 119 120 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
  # 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 已提交
149

150 151 152 153 154 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
  # 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)
180 181

  monaco:
182
    name: Monaco Editor checks
183
    runs-on: ubuntu-latest
184 185 186
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    steps:
A
Alex Dima 已提交
187
      - uses: actions/checkout@v2
188

A
Alex Dima 已提交
189
      - uses: actions/setup-node@v2-beta
J
João Moreno 已提交
190
        with:
A
Alex Dima 已提交
191
          node-version: 12
192

193
      - name: Cache node modules
A
Alexandru Dima 已提交
194
        id: cacheNodeModules
195 196
        uses: actions/cache@v2
        with:
A
Alexandru Dima 已提交
197 198 199
          path: '**/node_modules'
          key: ${{ runner.os }}-cacheNodeModules-${{ hashFiles('.yarnrc', 'remote/.yarnrc', '**/yarn.lock', '!**/node_modules/**/yarn.lock', '!**/.*/**/yarn.lock') }}
          restore-keys: ${{ runner.os }}-cacheNodeModules-
200

A
Alexandru Dima 已提交
201 202
      - name: Cache /build/ scripts
        id: cacheBuildScripts
203 204 205
        uses: actions/cache@v2
        with:
          path: build/**/*.js
A
Alexandru Dima 已提交
206
          key: ${{ runner.os }}-cacheBuildScripts-${{ hashFiles('build/yarn.lock', 'build/tsconfig.json', 'build/tsconfig.build.json', 'build/**/*.ts', '!**/node_modules/**/*.ts') }}
207

A
Alexandru Dima 已提交
208 209 210
      - name: Execute yarn
        if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' || steps.cacheBuildScripts.outputs.cache-hit != 'true' }}
        run: yarn --frozen-lockfile
211

212 213 214 215 216
      - name: Run Monaco Editor Checks
        run: yarn monaco-compile-check

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