Skip to content

Instantly share code, notes, and snippets.

@phouverneyuff
Last active April 29, 2019 17:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phouverneyuff/c2fccdb3cfdc50309ae3bfd6eaab2aa2 to your computer and use it in GitHub Desktop.
Save phouverneyuff/c2fccdb3cfdc50309ae3bfd6eaab2aa2 to your computer and use it in GitHub Desktop.
image: maven:3.6-jdk-8-alpine
stages:
- prepare
- compile
- deploy
variables:
MAVEN_CLI_OPTS: "-s settings-everis.xml -P everis-profile --batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true "
cache:
paths:
- .m2/repository/
- target/
download-files:
stage: prepare
artifacts:
paths:
- settings-everis.xml
script:
- |
wget --header "PRIVATE-TOKEN: ${GITLAB_CI_USER_API_TOKEN}" "https://gitlab.com/api/v4/projects/everisbr%2Fmicroservices%2Freactive%2Fgitlab-ci-pipeline/snippets/1838837/raw" -O settings-everis.xml
.prepare-version: &prepare-version
artifacts:
paths:
- pom.xml
stage: prepare
variables:
PKG_VERSION: SNAPSHOT
script:
- echo "version" $CI_COMMIT_REF_NAME-$PKG_VERSION
- mvn versions:set -DnewVersion=$CI_COMMIT_REF_NAME-$PKG_VERSION
prepare-version-except-tags:
<<: *prepare-version
except:
- tags
prepare-version-tags:
<<: *prepare-version
script:
- echo "version" $CI_COMMIT_REF_NAME
- mvn versions:set -DnewVersion=$CI_COMMIT_REF_NAME
only:
- tags
compile:
stage: compile
dependencies:
- download-files
script:
- mvn $MAVEN_CLI_OPTS install -Diterations=10
deploy:
stage: deploy
dependencies:
- download-files
- prepare-version-except-tags
- prepare-version-tags
script:
- mvn $MAVEN_CLI_OPTS deploy

gitlab-ci-pipeline

Contém arquivos usados para o pipeline usando gitlab-ci

Como usar:

  • crie um arquivo chamado .gitlab-ci.yml na raiz do repositório com o seguinte conteúdo:
    include:
    - project: 'everisbr/microservices/reactive/gitlab-ci-pipeline'
        ref: master
        file: "/.gitlab-ci.yml"
  • adicione no pom.xml o seguinte profile:
    <profiles>
      <profile>
        <id>everis-profile</id>
    	<activation>
    	  <activeByDefault>false</activeByDefault>
    	</activation>
    	<distributionManagement>
    	  <repository>
    	    <id>everis-microservice-chassis</id>
    		<name>everis-microservice-chassis</name>
    		<url>${env.MAVEN_REPO_URL}</url>
    	  </repository>
    	  <snapshotRepository>
            <id>everis-microservice-chassis-snapshots</id>
    		<name>everis-microservice-chassis-snapshots</name>
    		<url>${env.MAVEN_REPO_URL}</url>
    	  </snapshotRepository>
    	</distributionManagement>
      </profile>
    </profiles>
  • crie as seguintes Environment Variables secretas (Settings > CI/CD > Environment Variables):
    • MAVEN_REPO_URL (URL do Artifactory onde contém as dependências específicas para o projeto)
    • MAVEN_REPO_USER (Usuário do artifactory)
    • MAVEN_REPO_PASS (Senha do usuário do artifactory)
    • GITLAB_CI_USER_API_TOKEN (Token de usuário de serviço que tenha acesso a este projecto)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment