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"