name: home-assistant.io Test

on: [push, pull_request]

jobs:
  markdown-lint:
    name: Lint Markdown
    runs-on: ubuntu-latest
    steps:
      - name: Check out files from GitHub
        uses: actions/checkout@v2
      - name: Setting up Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v2.1.1
        with:
          node-version: 12.x
      - name: Setup NPM cache
        uses: actions/cache@v2
        with:
          path: ~/.npm
          key: npm-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            npm-
      - name: Install dependencies
        run: npm install
        env:
          CI: true
      - name: Run remark lint
        run: npm run markdown:lint
  textlint:
    name: Lint Text
    runs-on: ubuntu-latest
    steps:
      - name: Check out files from GitHub
        uses: actions/checkout@v2
      - name: Setting up Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v2.1.1
        with:
          node-version: 12.x
      - name: Setup NPM cache
        uses: actions/cache@v2
        with:
          path: ~/.npm
          key: npm-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            npm-
      - name: Install dependencies
        run: npm install
        env:
          CI: true
      - name: Run textlint
        run: npm run textlint
  build:
    name: Jekyll build
    runs-on: ubuntu-latest
    needs: [markdown-lint]
    steps:
      - name: Check out files from GitHub
        uses: actions/checkout@v2
      - name: Setting up Ruby 2.6
        uses: actions/setup-ruby@v1.1.1
        with:
          ruby-version: 2.6
      - name: Setup Ruby Gems cache
        uses: actions/cache@v2
        with:
          path: vendor/bundle
          key: gems-${{ hashFiles('**/Gemfile.lock') }}
          restore-keys: |
            gems-
      - name: Installing dependencies
        run: |
          gem install bundler -v 2.0.1
          bundle config path vendor/bundle
          bundle install --jobs 4 --retry 3
      - name: Setting up Jekyll cache
        uses: actions/cache@v2
        with:
          path: source/.jekyll-cache
          key: jekyll-${{ hashFiles('**/Gemfile.lock') }}-${{ hashFiles('**/_config.yml') }}
          restore-keys: |
            jekyll-${{ hashFiles('**/Gemfile.lock') }}-
            jekyll-
      - name: Building site
        run: |
          bundle exec rake generate
