Bug/login and device discovery #48
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - develop | |
| - 'feat/**' | |
| pull_request: | |
| branches: | |
| - main | |
| - develop | |
| jobs: | |
| build-and-test: | |
| name: Build and Test | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [22.x] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build project | |
| run: npm run build | |
| - name: Run tests with coverage | |
| run: npm run test:coverage | |
| - name: Upload coverage to Codecov | |
| if: matrix.node-version == '22.x' | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| file: ./coverage/lcov.info | |
| flags: unittests | |
| name: codecov-umbrella | |
| fail_ci_if_error: false | |
| lint-formatting: | |
| name: Linting and Formatting | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22.x' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Validate formatting and linting | |
| run: npm run validate | |
| build-homey-app: | |
| name: Build Homey App | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js 18 (for Homey CLI) | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '18.x' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Install Homey CLI | |
| run: npm install -g homey | |
| - name: Build Homey app | |
| run: homey app build | |
| - name: Validate app.json | |
| run: homey app validate | |
| - name: Upload build artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: homey-app-build | |
| path: | | |
| build/ | |
| app.json | |
| retention-days: 7 | |
| status-check: | |
| name: All Checks Passed | |
| runs-on: ubuntu-latest | |
| needs: [build-and-test, lint-formatting, build-homey-app] | |
| if: always() | |
| steps: | |
| - name: Check build status | |
| if: needs.build-and-test.result != 'success' | |
| run: exit 1 | |
| - name: Check markdown lint status | |
| if: needs.lint-formatting.result != 'success' | |
| run: exit 1 | |
| - name: Check Homey build status | |
| if: needs.build-homey-app.result != 'success' | |
| run: exit 1 | |
| - name: All checks passed | |
| run: echo "✅ All CI checks passed successfully!" |