Skip to content

CI

CI #20

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
inputs:
version:
type: string
description: 'Version to release'
required: false
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
verif:
# The type of runner that the job will run on
runs-on: ubuntu-latest
name: Vérifications
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout
uses: actions/checkout@v4
with:
show-progress: false
- name: Configure Node
uses: actions/setup-node@v4
with:
node-version: 20
# Runs a single command using the runners shell
- name: Install dependencies
run: npm ci
- name: Run TU
run: npm run test:coverage
- name: Run lint
run: npm run lint
- name: Publish TU Report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: JEST Tests # Name of the check run which will be created
path: reports/jest-junit.xml # Path to test results (inside artifact .zip)
reporter: jest-junit # Format of test results
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
name: Construction
needs: [ verif ]
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Checkout
uses: actions/checkout@v4
with:
show-progress: false
livraison:
# The type of runner that the job will run on
runs-on: ubuntu-latest
name: Livraison
needs: [ build ]
if: ${{ inputs.version != '' }} # ssi release
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Checkout
uses: actions/checkout@v4
with:
show-progress: false
- name: Configure GIT
run: |
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
- name: Create release
run: npm version ${{ inputs.version }}
- name: Push changes
run: git push --follow-tags