# workflow stages: - build - test - integration - acceptance - release - deployment # default image for jobs default: image: node:11 # cache modules between jobs cache: key: ${CI_COMMIT_REF_SLUG} paths: - .npm/ ## BUILD ## build: stage: build before_script: - npm ci --cache .npm --prefer-offline --only=production script: - cp config.sample.json config.json - npm run build artifacts: when: on_success expire_in: 1 day paths: - dist/ tags: - test ## TESTING ## test:e2e: stage: test image: cypress/included:5.6.0 services: - name: ${CI_REGISTRY_IMAGE}/server:0.1 before_script: # install missing dependencies - npm install -g sirv-cli - npm install cypress-localstorage-commands # making sure the process is orphan - sirv dist --port 3000 > /dev/null 2>&1 & script: - cypress run -e CYPRESS_baseUrl=http://localhost:3000 tags: - test ## VALIDATION ## include: project: infra/gitlab ref: master file: templates/deploy.ci.yml test1: extends: .ansible stage: integration environment: name: test1 url: https://test1.startinblox.com only: - /^feature\/.*/ when: manual test2: extends: .ansible stage: integration environment: name: test2 url: https://test2.startinblox.com only: - /^feature\/.*/ when: manual test3: extends: .ansible stage: integration environment: name: test3 url: https://test3.startinblox.com only: - /^feature\/.*/ when: manual stg1: extends: .ansible stage: acceptance environment: name: stg1 url: https://stg1.startinblox.com only: - /^release\/.*/ when: manual stg2: extends: .ansible stage: acceptance environment: name: stg2 url: https://stg2.startinblox.com only: - /^release\/.*/ when: manual ## RELEASE TAGGING ## publish: stage: release script: - npm install -g semantic-release@v17 @semantic-release/gitlab@v6.0.5 - semantic-release only: - master tags: - deploy ## LIVE DEPLOYMENTS ## community: extends: .ansible environment: name: community url: https://community.startinblox.com when: manual nantes: extends: .ansible environment: name: nantes url: https://app.nantes.happy-dev.fr when: manual paris: extends: .ansible environment: name: paris url: https://app.paris.happy-dev.fr when: manual smarttoulouse: extends: .ansible environment: name: smarttoulouse url: https://smart-toulouse.happy-dev.fr when: manual tags: - deploy volumes: extends: .ansible environment: name: volumes url: https://volumes.hubl.world when: manual communityhubl: extends: .ansible environment: name: communityhubl url: https://community.hubl.world when: manual playground: extends: .ansible environment: name: playground url: https://playground.hubl.world when: manual casaco: extends: .ansible environment: name: casaco url: https://casaco.hubl.world when: manual opteos: extends: .ansible environment: name: opteos url: https://opteos.hubl.world when: manual fnk: extends: .ansible environment: name: fnk url: https://fnk.hubl.world when: manual tags: - deploy labriqueterie: extends: .ansible environment: name: labriqueterie url: https://labriqueterie.hubl.world when: manual facttic: extends: .ansible environment: name: facttic url: https://facttic.hubl.world when: manual cotech: extends: .ansible environment: name: cotech url: https://hubl.coops.tech when: manual lelaptop: extends: .ansible environment: name: lelaptop url: https://lelaptop.hubl.world when: manual virtualassembly: extends: .ansible environment: name: virtualassembly url: https://virtual-assembly.hubl.world when: manual ouisharequebec: extends: .ansible environment: name: ouisharequebec url: https://ouishare-quebec.hubl.world when: manual nouvelleaquitaine: extends: .ansible environment: name: nouvelleaquitaine url: https://app.nouvelle-aquitaine.happy-dev.fr when: manual paca: extends: .ansible environment: name: paca url: https://app.paca.happy-dev.fr when: manual strasbourg: extends: .ansible environment: name: strasbourg url: https://app.strasbourg.happy-dev.fr when: manual bretagne: extends: .ansible environment: name: bretagne url: https://app.bretagne.happy-dev.fr when: manual lemans: extends: .ansible environment: name: lemans url: https://app.lemans.happy-dev.fr when: manual apidays: extends: .ansible environment: name: apidays url: https://apidays.hubl.world when: manual toulouse: extends: .ansible environment: name: toulouse url: https://app.toulouse.happy-dev.fr when: manual lepool: extends: .ansible environment: name: lepool url: https://lepool.hubl.world when: manual cpe: extends: .ansible environment: name: cpe url: https://cpe.hubl.world when: manual lescanumeriques: extends: .ansible environment: name: lescanumeriques url: https://fichemetier.fr.hubl.world when: manual phares: extends: .ansible environment: name: phares url: https://le.phares.hubl.world when: manual esspace: extends: .ansible environment: name: esspace url: https://ess.pace.hubl.world when: manual grandecoco: extends: .ansible environment: name: grandecoco url: https://la.grande.coco.hubl.world when: manual espaceimaginaire: extends: .ansible environment: name: espaceimaginaire url: https://espace-imaginaire.hubl.world when: manual hallesciviques: extends: .ansible environment: name: hallesciviques url: https://les.halles.civiques.hubl.world when: manual ctc: extends: .ansible environment: name: ctc url: https://collectif.tansition.citoyenne.hubl.world when: manual studiossinguliers: extends: .ansible environment: name: studiossinguliers url: https://studios-singuliers.hubl.world when: manual apluscestmieux: extends: .ansible environment: name: apluscestmieux url: https://apluscestmieux.hubl.world when: manual projetlerepaire: extends: .ansible environment: name: projetlerepaire url: https://projet.le.repaire.hubl.world when: manual oxamyne: extends: .ansible environment: name: oxamyne url: https://oxamyne.hubl.world when: manual laruchesaintgermain: extends: .ansible environment: name: laruchesaintgermain url: https://la.ruche.saint-germain.hubl.world when: manual artefacts: extends: .ansible environment: name: artefacts url: https://artefacts.hubl.world when: manual lab01: extends: .ansible environment: name: lab01 url: https://le.lab01.hubl.world when: manual makesense: extends: .ansible environment: name: makesense url: https://makesense.hubl.world when: manual moulindepontru: extends: .ansible environment: name: moulindepontru url: https://moulin.de.pont-ru.hubl.world when: manual latreso: extends: .ansible environment: name: latreso url: https://la.treso.hubl.world when: manual montpellier: extends: .ansible environment: name: montpellier url: https://app.montpellier.happy-dev.fr when: manual acn: extends: .ansible environment: name: acn url: https://acn.hubl.world when: manual woma: extends: .ansible environment: name: woma url: https://woma.hubl.world when: manual