.gitlab-ci.yml 1.5 KB

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