From 22e4c0512e881e0306e2af31c37ac85507481946 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 21 Feb 2020 13:59:09 +0100 Subject: [PATCH] Add GitHub Actions (#4952) --- .github/workflows/ci.yaml | 119 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000000..cbb95228fd --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,119 @@ +name: CI + +on: [push, pull_request] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Check out files from GitHub + uses: actions/checkout@v2 + - name: Setting up Node.js + uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Get yarn cache path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: Fetching Yarn cache + uses: actions/cache@v1 + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Install dependencies + run: yarn install + env: + CI: true + - name: Build icons + run: ./node_modules/.bin/gulp gen-icons-hassio gen-icons-mdi gen-icons-app + - name: Build translations + run: ./node_modules/.bin/gulp build-translations + - name: Run eslint + run: ./node_modules/.bin/eslint src hassio/src gallery/src + - name: Run tslint + run: ./node_modules/.bin/tslint 'src/**/*.ts' 'hassio/src/**/*.ts' 'gallery/src/**/*.ts' 'cast/src/**/*.ts' 'test-mocha/**/*.ts' + - name: Run tsc + run: ./node_modules/.bin/tsc + test: + runs-on: ubuntu-latest + steps: + - name: Check out files from GitHub + uses: actions/checkout@v2 + - name: Setting up Node.js + uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Get yarn cache path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: Fetching Yarn cache + uses: actions/cache@v1 + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Install dependencies + run: yarn install + env: + CI: true + - name: Run Mocha + run: npm run mocha + build: + runs-on: ubuntu-latest + needs: [lint, test] + steps: + - name: Check out files from GitHub + uses: actions/checkout@v2 + - name: Setting up Node.js + uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Get yarn cache path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: Fetching Yarn cache + uses: actions/cache@v1 + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Install dependencies + run: yarn install + env: + CI: true + - name: Build Application + run: ./node_modules/.bin/gulp build-app + env: + TRAVIS: "true" + supervisor: + runs-on: ubuntu-latest + needs: [lint, test] + steps: + - name: Check out files from GitHub + uses: actions/checkout@v2 + - name: Setting up Node.js + uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Get yarn cache path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: Fetching Yarn cache + uses: actions/cache@v1 + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Install dependencies + run: yarn install + env: + CI: true + - name: Build Application + run: ./node_modules/.bin/gulp build-hassio + env: + TRAVIS: "true"