.gitlab-ci.yml 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. stages:
  2. - build
  3. - build docker
  4. - push docker
  5. build:
  6. image: golang:1-alpine
  7. stage: build
  8. before_script:
  9. - apk add git build-base
  10. script:
  11. - go build -o mautrix-whatsapp
  12. artifacts:
  13. paths:
  14. - mautrix-whatsapp
  15. build docker:
  16. image: docker:stable
  17. stage: build docker
  18. before_script:
  19. - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  20. script:
  21. - docker pull $CI_REGISTRY_IMAGE:latest || true
  22. - docker build --pull --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . --file Dockerfile.ci
  23. - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  24. push latest:
  25. image: docker:stable
  26. stage: push docker
  27. only:
  28. - master
  29. variables:
  30. GIT_STRATEGY: none
  31. before_script:
  32. - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  33. script:
  34. - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  35. - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:latest
  36. - docker push $CI_REGISTRY_IMAGE:latest
  37. dependencies: []
  38. push tag:
  39. image: docker:stable
  40. stage: push docker
  41. except:
  42. - master
  43. variables:
  44. GIT_STRATEGY: none
  45. before_script:
  46. - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  47. script:
  48. - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  49. - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
  50. - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
  51. dependencies: []