Skip to content

Pull request tests DockerNodeRed #3665

Pull request tests DockerNodeRed

Pull request tests DockerNodeRed #3665

Workflow file for this run

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