config.yml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. version: 2
  2. jobs:
  3. build:
  4. machine: true
  5. working_directory: ~/pgv
  6. steps:
  7. - checkout
  8. - run: docker build -t protoc-gen-validate .
  9. - run: docker run --rm protoc-gen-validate ci
  10. - run: |
  11. if [ "${CIRCLE_BRANCH}" == "main" ]; then
  12. docker run --rm --env PYPI_REPO=pypi --env PGV_PYPI_TOKEN="${PGV_PYPI_TOKEN}" protoc-gen-validate python-release
  13. fi
  14. javabuild:
  15. machine: true
  16. working_directory: ~/.go_workspace/src/github.com/envoyproxy/protoc-gen-validate/java
  17. environment:
  18. MAVEN_OPTS: -Xms512m -Xmx1024m # Customize the JVM maximum heap limit
  19. GO111MODULE: "on"
  20. CI_GO_VERSION: 1.14.7
  21. steps:
  22. - checkout:
  23. path: ~/.go_workspace/src/github.com/envoyproxy/protoc-gen-validate
  24. - run: sudo rm -rf /usr/local/go && curl -O https://dl.google.com/go/go${CI_GO_VERSION}.linux-amd64.tar.gz && sudo tar -C /usr/local -xzf go${CI_GO_VERSION}.linux-amd64.tar.gz && rm go${CI_GO_VERSION}.linux-amd64.tar.gz && go version
  25. - run: mvn -B verify
  26. - add_ssh_keys:
  27. fingerprints:
  28. - "71:d5:2d:12:fa:d5:65:e0:bf:4e:2c:59:95:db:a9:cc"
  29. - deploy:
  30. command: | # Deploy from the main branch or from a version branch/tag. If the $RELEASE and $NEXT variables are set then prepare a full maven release.
  31. if [[ "${CIRCLE_BRANCH}" =~ v[0-9]+\.[0-9]+\.[0-9]+ ]]; then
  32. RELEASE="${CIRCLE_BRANCH}"
  33. NEXT="${CIRCLE_BRANCH}-SNAPSHOT"
  34. DO_RELEASE=1
  35. fi
  36. if [[ "${CIRCLE_BRANCH}" == "main" || -n "${DO_RELEASE}" ]]; then
  37. echo $GPG_KEY | base64 --decode > signing-key
  38. gpg --passphrase $GPG_PASSPHRASE --import signing-key
  39. shred signing-key
  40. if [[ -n "${RELEASE}" && -n "${NEXT}" ]]; then
  41. git config --global user.email "envoy-bot@users.noreply.github.com"
  42. git config --global user.name "envoy-bot"
  43. mvn -B -s ../.circleci/settings.xml release:prepare release:perform \
  44. -Darguments="-s ../.circleci/settings.xml" \
  45. -DreleaseVersion=$RELEASE -DdevelopmentVersion=$NEXT \
  46. -DscmCommentPrefix="java release: "
  47. else
  48. mvn -B -s ../.circleci/settings.xml deploy
  49. fi
  50. fi
  51. workflows:
  52. version: 2
  53. build_and_javabuild:
  54. jobs:
  55. - build
  56. - javabuild