Skip to content

Pull request tests RequestAPI-deviceFeaturesStates #3714

Pull request tests RequestAPI-deviceFeaturesStates

Pull request tests RequestAPI-deviceFeaturesStates #3714

Workflow file for this run

name: Pull request tests
on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened, ready_for_review]
jobs:
test-front:
name: Front test
runs-on: ubuntu-20.04
steps:
- name: ⬇️ Checkout Gladys code
uses: actions/checkout@v2
- name: 💽 Setup nodejs
uses: actions/setup-node@v2
with:
node-version: '14'
- name: 📇 Use npm cache
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- 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
test-server:
name: Server test
runs-on: ubuntu-20.04
steps:
- name: ⬇️ Checkout Gladys code
uses: actions/checkout@v2
with:
fetch-depth: 2
- name: 💽 Setup nodejs
uses: actions/setup-node@v2
with:
node-version: '14'
- name: 📇 Use npm cache
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: 🖥️ Setup OZW
run: |
docker create -ti --name dummy chrisns/openzwave:ubuntu-1.6.1714 bash
sudo docker cp dummy:/usr/local/include/openzwave /usr/local/include/openzwave
sudo docker cp dummy:/openzwave/libopenzwave.so /usr/local/lib
sudo docker cp dummy:/openzwave/libopenzwave.so.1.6 /usr/local/lib
sudo docker cp dummy:/openzwave/config /usr/local/etc/openzwave
sudo ldconfig
docker rm -f dummy
- 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@v2
with:
fail_ci_if_error: true
cypress-run:
name: Cypress run
runs-on: ubuntu-20.04
steps:
- name: ⬇️ Checkout code
uses: actions/checkout@v2
- name: 💽 Setup nodejs
uses: actions/setup-node@v2
with:
node-version: '14'
- name: 📇 Use npm cache
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: 🖥️ Setup OZW
run: |
docker create -ti --name dummy chrisns/openzwave:ubuntu-1.6.1714 bash
sudo docker cp dummy:/usr/local/include/openzwave /usr/local/include/openzwave
sudo docker cp dummy:/openzwave/libopenzwave.so /usr/local/lib
sudo docker cp dummy:/openzwave/libopenzwave.so.1.6 /usr/local/lib
sudo docker cp dummy:/openzwave/config /usr/local/etc/openzwave
sudo ldconfig
docker rm -f dummy
- name: 💽 Install System Dependencies
run: |
sudo apt update
sudo apt-get install -y libudev-dev sqlite3 openssl python-is-python3
- name: 📦 Install NPM packages
run: |
npm ci && npm run install-server:dev
- name: ✅ Cypress run
uses: cypress-io/github-action@v2
with:
install: false
start: npm run start:cypress
wait-on: 'http://localhost:1444'
config-file: ./front/cypress/cypress.json
project: ./front
command: npm run cypress:run
build-front:
if: github.event.pull_request.draft == false
name: Front build
needs:
- test-front
runs-on: ubuntu-20.04
steps:
- name: ⬇️ Checkout code
uses: actions/checkout@v2
- name: 💽 Setup nodejs
uses: actions/setup-node@v2
with:
node-version: '14'
- name: 📇 Use npm cache
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- 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 webpack stats artifact
uses: relative-ci/agent-upload-artifact-action@v1
with:
webpackStatsFile: ./front/stats.json
- name: ↗️ Upload build artifact
uses: actions/upload-artifact@v2
with:
name: static
path: front/build
docker:
if: github.event.pull_request.draft == false
needs: build-front
name: Docker magic !
runs-on: ubuntu-20.04
steps:
- name: ⬇️ Checkout code
uses: actions/checkout@v2
- name: 💽 Set up QEMU
uses: docker/setup-qemu-action@v1
- name: 🐳 Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
version: latest
- name: ↙️ Download build artifact
uses: actions/download-artifact@v2
with:
name: static
path: static
- name: 🐳 Build AMD64 images
uses: docker/build-push-action@v2
with:
context: .
file: ./docker/Dockerfile.buildx
platforms: linux/amd64
push: false