Il y a 3 étapes - construire, tester et déployer dans .gitlab-ci.yml
.
Une étape de test de régression nocturne doit être exécutée - enfin nightly
:)
Voici le .gitlab-ci.yml
code:
stages:
- build
- test
- deploy
build_project:
stage: build
script:
- cd ./some-dir
- build-script.sh
except:
- tags
#Run this only when say variable 'NIGHTLY_TEST == True'. But HOW?
nightly_regression_test_project:
stage: test
script:
- cd ./some-dir
- execute test-script
Le balisage quotidien vers only
run test
stage n'est pas préférable.
Une autre idée?
Au cas où quelqu'un le chercherait maintenant, gitlab a maintenant implémenté une fonctionnalité de construction planifiée avec écrasement variable (incroyablement pratique). Documentation trouvée ici .
Pour toute personne intéressée par les instructions pour cette fonctionnalité lorsque cette réponse a été donnée, la voici:
Utilisation des calendriers de pipelines
Pour planifier un pipeline:
Ma caractéristique préférée est les variables de pipeline planifiées.
La documentation des variables peut être trouvée ici , mais l'information la plus utile pour moi était la priorité, que je retaperai ici:
Priorité des variables
Les variables peuvent être écrasées et elles ont priorité les unes sur les autres dans cet ordre:
J'espère que cela t'aides. Je suis ravi qu'ils aient ajouté cette fonctionnalité.
except
et only
peuvent spécifier des variables qui les déclencheront.
Vous pouvez utiliser ce qui suit dans votre .gitlab-ci.yml:
build1:
stage: build
script:
- echo "Only when NIGHTLY_TEST is false"
except:
variables:
- $NIGHTLY_TEST
test1:
stage: test
script:
- echo "Only when NIGHTLY_TEST is true"
only:
variables:
- $NIGHTLY_TEST
Il n'existe actuellement aucun moyen d'exécuter un travail en fonction des variables d'environnement (vous pouvez toujours ouvrir une demande de fonctionnalité!). Vous pouvez cependant utiliser une simple commande Bash pour quitter immédiatement si la variable d'environnement n'existe pas.
Quelque chose comme:
stages:
- build
- test
- deploy
build_project:
stage: build
script:
- cd ./some-dir
- build-script.sh
except:
- tags
# Run this only when NIGHTLY_TEST environment variable exists.
nightly_regression_test_project:
stage: test
script:
- [ -z "$NIGHTLY_TEST" ] && exit 1;
- cd ./some-dir
- execute test-script
Si la variable n'existe pas, les tests qui suivent ne s'exécuteront pas. Sinon, ils le feront.
J'espère que cela pourra aider!