Ce projet sert de support à l'atelier Implémenter le Continuous Testing
Plan :
- ETAPE 1 : FORK le projet cerberustesting/cerberus-sample-maboutique.
- ETAPE 2 : Ajout d'une Github Actions Qualité de code.
- ETAPE 3 : Ajout des tests automatiques dans la CI.
Utiliser chrome ou firefox de préférence
Read/Write pour ceux qui veulent pratiquer en live :)
- User : jftl
- Pass : jftl
- Depuis le projet github https://github.com/cerberustesting/cerberus-sample-maboutique, fork l’application sur votre repository perso
- Valider la creation du fork
Vous devriez être redirigé sur votre fork (Cf. ci dessous)
-
Aller sur la page https://sonarcloud.io/
-
Choisir de parser un nouveau projet github
- Cliquer sur + (ajouter un nouveau repository)
- Choisir une organisation, choisir votre organisation perso, cliquer sur only select repository, choisir le projet "ma boutique" et cliquer sur install
5.Créer une organisation
- Choisir Free plan
- Selectionner et cliquer sur setup
- Dans Sonar, vous arrivez sur cette page
- Cliquer sur Administration > Analysis Method
- Désactiver le scan automatique
- Cliquer sur la configuration via github actions
- Copier le Token SONAR_TOKEN
- Choisir Other, et copier la configuration
sonarcloud:
needs: build
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- Copier les propriétés
sonar.projectKey
sonar.organization
- Dand Github, aller dans Settings > Secrets > Actions
- Cliquer sur New repository secret
- Name : SONAR_TOKEN
- Value : Le token sauvegardé
- Changer les propiétés du fichier de propriété sonar-project.properties par les propiétés récupérées dans Sonar
- Modifier le fichier /.github/workflows/full_CI_to_complete.yml
Cliquer sur edit
Coller la configuration ci dessous :
sonarcloud:
needs: build
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Vous obtenez ce résultat :
Cliquer sur Start Commit
Depuis la page Actions, vérifier la bonne execution de la CI
Dans Sonar, vérifier le résultat :
Créer un nouveau fichier
Nommez le Newfile.js et renseigner le contenu suivant
var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
var uniqueNames = [];
$.each(names, function(i, el){
if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});
Commit New File
Depuis la page Actions, vérifier l'execution de la CI. Vous devriez avoir un KO sur la scan Sonarcloud
Dans Sonarcloud, vérifier la status
cliquer sur "See full Analysis"
Cliquer sur A rating required
Analyser les changements à appliquer
Dans github, modifier le fichier
let names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
let uniqueNames = [];
$.each(names, function(_i, el){
if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});
Commit et vérifier la correction des erreurs
- Dans Github aller sur la page Settings > Secrets > Actions
- Ajouter un nouveau "Repository Secret"
- Name : APIKEY
- Value : l'APIKEY réupéré dans Cerberus > Administration > Parameters.
- Aller sur l'onglet Action
- Cliquer sur Full_CI_to_complete.yml
- Cliquer sur edit et ajouter la configuration ci dessous
run_Tests_UAT:
needs: sonarcloud
name: Run_Tests_UAT
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: cerberus-action
uses: cerberustesting/cerberus-github-action@v6
with:
host: https://jftl.cerberus-testing.fr
campaign: SanityCheck
apikey: ${{ secrets.APIKEY }}
author: ${{ github.event.pusher.name }}
environment: UAT
tag: ${TAG}
Vous obtenez ce resultat
Commit ce changement. Et vérifier la bonne execution de la CI