An error occurred while loading the file. Please try again.
-
Daniel Rainer authored
This job requires artifacts from other jobs, namely test results, which were generated in by jobs in the same stage. Gitlab does not support passing artifacts within a stage, so the sonar-analyze job needs to be done in a later stage.
e4008efa
This GitLab CI configuration is valid.
Learn more
.gitlab-ci.yml 5.94 KiB
image: sharing-codeability.uibk.ac.at:5051/sharing/codeability-sharing-platform/root-jhipster
cache: &global_cache
key: '$CI_COMMIT_REF_SLUG'
paths:
- .maven/
- .npm/
policy: pull-push
stages:
- lint
- build
- test
- analyze
- release
- deploy
- e2e
before_script:
- export NG_CLI_ANALYTICS="false"
- export MAVEN_USER_HOME=`pwd`/.maven
pmdCheckstylePrettierLint:
stage: lint
cache: []
when: always
script:
- 'export VERSION="6.40.0"'
- 'wget "https://github.com/pmd/pmd/releases/download/pmd_releases%2F$VERSION/pmd-bin-$VERSION.zip"'
- 'jar -xf "pmd-bin-$VERSION.zip"'
- 'chmod u+x "pmd-bin-$VERSION/bin/run.sh"'
- SUCCESS=true
- echo "Running PMD"
- '"pmd-bin-$VERSION/bin/run.sh" pmd -d src/main/java -f textcolor -R pmd_rules.xml 2>&1 | tee pmd.log || SUCCESS=false'
- echo "Running checkstyle"
- ./mvnw -ntp checkstyle:check -Dmaven.repo.local=$MAVEN_USER_HOME || SUCCESS=false
- echo "Running prettier"
- npm install
- npm run prettier:check
- echo "Running eslint"
- 'npm run lint | tee lint.log'
- "! grep -qE '✖ [0-9]+ problem' lint.log || SUCCESS=false"
- $SUCCESS
needs: []
artifacts:
when: on_failure
expire_in: 30 days
paths:
- pmd.log
maven-compile:
stage: build
script:
- ./mvnw -ntp compile -P-webapp -Dmaven.repo.local=$MAVEN_USER_HOME
artifacts:
paths:
- target/classes/
- target/generated-sources/
expire_in: 15 days
needs: []
cache: []
maven-test:
services:
- docker:20-dind
variables:
DOCKER_HOST: 'tcp://docker:2375'
DOCKER_TLS_CERTDIR: ''
stage: test
cache:
# inherit all global cache settings
<<: *global_cache
# override the policy
policy: pull
script:
- ./mvnw -ntp verify -P-webapp -Dmaven.repo.local=$MAVEN_USER_HOME -Dspring.profiles.active=testcontainers
allow_failure: true
artifacts:
reports:
junit:
- target/surefire-reports/TEST-*.xml
- target/failsafe-reports/TEST-*.xml
paths:
- target/surefire-reports
- target/failsafe-reports
- target/site
when: always
expire_in: 15 days
needs: []
frontend-test:
stage: test
cache:
<<: *global_cache
policy: pull
script:
- npm test
artifacts:
reports:
junit: target/test-results/TESTS-results-jest.xml
paths:
- target/test-results
- target/jacoco
when: always
expire_in: 15 days
needs: []
before_script:
- export NG_CLI_ANALYTICS="false"
- export MAVEN_USER_HOME=`pwd`/.maven
- npm ci --cache .npm --prefer-offline
docker-build:
stage: release
cache: []
only:
refs:
- development
dependencies:
- maven-test
- frontend-test
before_script:
- mkdir -p ~/.ssh
- echo "${SSH_BKY_DEPLOY}" > ~/.ssh/id_rsa
- chmod 700 ~/.ssh/id_rsa
- eval "$(ssh-agent -s)"
- ssh-add ~/.ssh/id_rsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
variables:
REGISTRY_URL: sharing-codeability.uibk.ac.at:5051
IMAGE_TAG: sharing-codeability.uibk.ac.at:5051/sharing/codeability-sharing-platform/gitsearch
script:
- ssh contDeploy@codeability-austria -p 1022 "cd gitsearch2/gitsearch && git pull && ./mvnw package -DskipTests jib:build -Djib.to.image=$IMAGE_TAG -Djib.to.auth.username=gitlab-ci-token -Djib.to.auth.password=$CI_BUILD_TOKEN -Dmaven.repo.local=$MAVEN_USER_HOME"
when: on_success
deploy:
stage: deploy
cache: []
only:
refs:
- development
dependencies:
- docker-build
before_script:
- mkdir -p ~/.ssh
- echo "${SSH_BKY_DEPLOY}" > ~/.ssh/id_rsa
- chmod 700 ~/.ssh/id_rsa
- eval "$(ssh-agent -s)"
- ssh-add ~/.ssh/id_rsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
script:
- ssh contDeploy@codeability-austria -p 1022 "cd gitsearch2/gitsearch && git pull && cd src/main/docker/ && docker pull sharing-codeability.uibk.ac.at:5051/sharing/codeability-sharing-platform/gitsearch && GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` COMMIT_ID=`git rev-parse HEAD` SPRING_PROFILES_ACTIVE=staging,swagger docker-compose -f gitsearch.yml up -d --no-deps --build --force-recreate gitsearch-app && exit"
when: on_success
e2e-test:
stage: e2e
cache:
# inherit all global cache settings
<<: *global_cache
# override the policy
policy: pull
only:
refs:
- development
services:
- selenium/standalone-chrome
dependencies:
- deploy
before_script:
- mkdir -p ~/.ssh
- echo "${SSH_BKY_DEPLOY}" > ~/.ssh/id_rsa
- chmod 700 ~/.ssh/id_rsa
- eval "$(ssh-agent -s)"
- ssh-add ~/.ssh/id_rsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
script:
- ssh contDeploy@codeability-austria -p 1022 "cd gitsearch2/gitsearch && git pull && npm install && export E2E_PASSWORD=$E2E_PASSWORD && npm run e2e:ci --host=selenium__standalone-chrome && exit"
# - npm install
# - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
# - dpkg -i google-chrome*.deb
# - export JHI_E2E_HEADLESS=true
# - npm run e2e:ci --host=selenium__standalone-chrome
when: on_success
sonar-analyze:
stage: analyze
cache:
# inherit all global cache settings
<<: *global_cache
# override the policy
policy: pull
dependencies:
- maven-test
- frontend-test
script:
- ./mvnw -ntp org.jacoco:jacoco-maven-plugin:prepare-agent initialize sonar:sonar -Dsonar.organization=codeAbility -Dsonar.host.url=https://qe-sonarqube.uibk.ac.at/ -Dsonar.login=${SONAR_TOKEN_QE} -Dmaven.repo.local=$MAVEN_USER_HOME
# - ./mvnw -ntp org.jacoco:jacoco-maven-plugin:prepare-agent initialize sonar:sonar -Dsonar.organization=codeAbility -Dsonar.host.url=https://server.arctis.at/sonar/ -Dsonar.login=${SONAR_TOKEN} -Dmaven.repo.local=$MAVEN_USER_HOME
allow_failure: true
before_script:
- export NG_CLI_ANALYTICS="false"
- export MAVEN_USER_HOME=`pwd`/.maven
- npm ci --cache .npm --prefer-offline