name: "Checks" on: [pull_request] jobs: matrix: runs-on: ubuntu-latest name: ${{ matrix.checks.name }} if: ${{ always() }} strategy: matrix: checks: - {check: "archived", name: "Check Archived", deps: True} - {check: "brands", name: "Check Brands", deps: True} - {check: "fork", name: "Check Fork", deps: True} - {check: "hacs_manifest", name: "Check HACS Manifest"} - {check: "images", name: "Check Images"} - {check: "info", name: "Check Info"} - {check: "manifest", name: "Check Manifest"} - {check: "owner", name: "Check Owner", deps: True} - {check: "repository", name: "Check Repository", deps: True} - {check: "wheels", name: "Check Wheels", deps: True} steps: - name: Check out repository uses: actions/checkout@v2 - name: Clone origin run: git clone --depth 1 https://github.com/hacs/default /tmp/default - name: Clone new addition run: | repo=$(python3 -m scripts.changed.repo) git clone --depth 1 "https://github.com/$repo" /tmp/addition - name: Install dependencies if needed if: matrix.checks.deps run: | python3 -m pip install setuptools wheel python3 -m pip install aiogithubapi - name: Run the check run: python3 -m scripts.check.${{ matrix.checks.check }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} hassfest: runs-on: ubuntu-latest name: "Check hassfest" if: ${{ always() }} steps: - name: Check out repository uses: actions/checkout@v2 - name: Clone origin run: git clone --depth 1 https://github.com/hacs/default /tmp/default - name: Clone new addition run: | repo=$(python3 -m scripts.changed.repo) git clone --depth 1 "https://github.com/$repo" /tmp/addition - name: Set category id: category run: echo "::set-output name=category::$(python3 -m scripts.changed.category)" - name: Pull Home Assistant Container if: steps.category.outputs.category == 'integration' run: docker pull homeassistant/home-assistant:beta - name: Run hassfest if: steps.category.outputs.category == 'integration' run: | integration=$(python3 -m scripts.helpers.integration_path) domain=$(python3 -m scripts.helpers.domain) docker run --entrypoint="" -v "$integration":"/$domain" \ homeassistant/home-assistant:beta python3 -m \ script.hassfest --action validate --integration-path "/$domain" hacs: runs-on: ubuntu-latest name: "Check HACS" if: ${{ always() }} steps: - name: Check out repository uses: actions/checkout@v2 - name: Clone origin run: git clone --depth 1 https://github.com/hacs/default /tmp/default - name: Set category id: category run: echo "::set-output name=category::$(python3 -m scripts.changed.category)" - name: Set repository id: repository run: echo "::set-output name=repository::$(python3 -m scripts.changed.repo)" - name: HACS validation uses: "hacs/integration/action@master" with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} env: REPOSITORY: "${{ steps.repository.outputs.repository }}" CATEGORY: "${{ steps.category.outputs.category }}"