Pull request tests sunspec #3739
Workflow file for this run
This file contains 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: Pull request tests | |
run-name: Pull request tests ${{ github.head_ref }} | |
on: | |
pull_request: | |
branches: [master] | |
types: [opened, synchronize, reopened, ready_for_review] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref }} | |
cancel-in-progress: true | |
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 | |
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@v3 | |
with: | |
fail_ci_if_error: true | |
cypress-run: | |
name: Cypress run | |
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 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/[email protected] | |
with: | |
install: false | |
start: npm run start:cypress | |
wait-on: 'http://localhost:1444' | |
config-file: ./front/cypress/cypress.config.js | |
project: ./front | |
command: npm run cypress:run | |
build-front: | |
if: github.event.pull_request.draft == false | |
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 webpack stats artifact | |
uses: relative-ci/agent-upload-artifact-action@v1 | |
with: | |
webpackStatsFile: ./front/stats.json | |
- name: ↗️ Upload build artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: static | |
path: front/build | |
docker: | |
if: github.event.pull_request.draft == false | |
needs: build-front | |
name: Docker magic ! | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: ⬇️ Checkout code | |
uses: actions/checkout@v3 | |
- name: 💽 Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: 🐳 Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v2 | |
with: | |
version: latest | |
- name: ↙️ Download build artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: static | |
path: static | |
- name: 🐳 Build AMD64 images | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
file: ./docker/Dockerfile.buildx | |
platforms: linux/amd64 | |
push: false |