Skip to content

Zigbee2mqtt: Add smart doorbell HEIMAN HS2DB (#2184) #789

Zigbee2mqtt: Add smart doorbell HEIMAN HS2DB (#2184)

Zigbee2mqtt: Add smart doorbell HEIMAN HS2DB (#2184) #789

name: Master branch tests
on:
push:
branches: [master]
jobs:
test-front:
name: Front test
runs-on: ubuntu-22.04
steps:
- name: ⬇️ Checkout Gladys code
uses: actions/checkout@v3
- name: 💽 Setup nodejs
uses: actions/setup-node@v3
with:
node-version-file: 'front/package.json'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: 📦 Install Global NPM Packages
run: |
sudo npm install typescript node-gyp npm@latest -g
- name: 📦 Install NPM front packages
working-directory: ./front
run: |
npm ci
- name: 🧐 Prettier check
working-directory: ./front
run: |
npm run prettier-check
- name: 👕 ESlint
working-directory: ./front
run: |
npm run eslint
- name: 🌐 Integration comparison
working-directory: ./front
run: |
npm run compare-translations
build-front:
name: Front build
runs-on: ubuntu-22.04
steps:
- name: ⬇️ Checkout code
uses: actions/checkout@v3
- name: 💽 Setup nodejs
uses: actions/setup-node@v3
with:
node-version-file: 'front/package.json'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: 📦 Install NPM front packages
working-directory: ./front
run: |
npm ci
- name: 🏗️ Build front
working-directory: ./front
run: |
npm run build-with-stats
- name: Upload bundle ci
working-directory: ./front
run: npx relative-ci-agent
env:
RELATIVE_CI_KEY: ${{ secrets.RELATIVE_CI_KEY }}
- name: ↗️ Upload build artifact
uses: actions/upload-artifact@v4
with:
name: static
path: front/build
test-server:
name: Server test
runs-on: ubuntu-22.04
steps:
- name: ⬇️ Checkout Gladys code
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: 💽 Setup nodejs
uses: actions/setup-node@v3
with:
node-version-file: 'server/package.json'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: 💽 Install System Dependencies
run: |
sudo apt update
sudo apt-get install -y libudev-dev sqlite3 openssl python-is-python3
- name: 📦 Install Global NPM Packages
run: |
sudo npm install typescript node-gyp npm@latest -g
- name: 📦 Install NPM server packages
working-directory: ./server
run: |
npm ci
- name: 🧐 Prettier check
working-directory: ./server
run: |
npm run prettier-check
- name: 👕 ESlint
working-directory: ./server
run: |
npm run eslint
- name: ✅ Test with coverage
working-directory: ./server
run: |
npm run coverage
- name: 🔐 Dependencies security audit
working-directory: ./server
run: npm audit --production --audit-level=critical || true
- name: 📄 Codecov report upload
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
token: 08cd0d46-0291-42ed-b352-50924cb6cca6
## Yes, we are storing the CODECOV token in plain text here and not as a secret.
## This is because Codecov report upload keeps failing because of a Github Action rate limit
## And as we are an open source project, we need forks to be able to upload reports as well, so
## we followed the recommandatiom from CodeCov:
## https://community.codecov.com/t/upload-issues-unable-to-locate-build-via-github-actions-api/3954
## It's not that dangerous to do it, and it's the best tradeoff we could find