.gitlab-ci.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. image: chocobozzz/peertube-ci:10
  2. stages:
  3. - clients
  4. - docker-nightly
  5. cache:
  6. key: yarn
  7. paths:
  8. - .yarn-cache
  9. - cached-fixtures
  10. build-openapi-clients:
  11. stage: clients
  12. only:
  13. refs:
  14. - master
  15. - schedules
  16. changes:
  17. - support/doc/api/openapi.yaml
  18. script:
  19. - apt-get update -qq
  20. - apt-get -yqqq install openjdk-8-jre
  21. - yarn install --pure-lockfile
  22. - scripts/openapi-peertube-version.sh
  23. - scripts/openapi-clients.sh
  24. build-nightly:
  25. stage: docker-nightly
  26. only:
  27. - schedules
  28. script:
  29. - yarn install --pure-lockfile --cache-folder .yarn-cache
  30. - npm run nightly
  31. - mkdir "${HOME}/.ssh"
  32. - chmod 700 "${HOME}/.ssh"
  33. - if [ ! -z ${DEPLOYEMENT_KNOWN_HOSTS+x} ]; then echo -e "${DEPLOYEMENT_KNOWN_HOSTS}" > ${HOME}/.ssh/known_hosts; fi
  34. - eval `ssh-agent -s`
  35. - if [ ! -z ${DEPLOYEMENT_KEY+x} ]; then ssh-add <(echo "${DEPLOYEMENT_KEY}"); fi
  36. - if [ ! -z ${DEPLOYEMENT_KEY+x} ]; then scp ./peertube-nightly-* ${DEPLOYEMENT_USER}@${DEPLOYEMENT_HOST}:../../web/nightly; fi
  37. .docker: &docker
  38. stage: docker-nightly
  39. cache: {}
  40. image:
  41. name: gcr.io/kaniko-project/executor:debug
  42. entrypoint: [""]
  43. before_script:
  44. - mkdir -p /kaniko/.docker
  45. - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$CI_REGISTRY_AUTH\",\"email\":\"$CI_REGISTRY_EMAIL\"}}}" > /kaniko/.docker/config.json
  46. script:
  47. - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $DOCKERFILE --destination $DOCKER_IMAGE_NAME
  48. build-docker-develop:
  49. <<: *docker
  50. only:
  51. - schedules
  52. variables:
  53. DOCKER_IMAGE_NAME: chocobozzz/peertube:develop-buster
  54. DOCKERFILE: $CI_PROJECT_DIR/support/docker/production/Dockerfile.buster
  55. build-docker-webserver:
  56. <<: *docker
  57. only:
  58. - schedules
  59. variables:
  60. DOCKER_IMAGE_NAME: chocobozzz/peertube-webserver
  61. DOCKERFILE: $CI_PROJECT_DIR/support/docker/production/Dockerfile.nginx
  62. build-docker-tag:
  63. <<: *docker
  64. only:
  65. - tags
  66. variables:
  67. DOCKER_IMAGE_NAME: chocobozzz/peertube:$CI_COMMIT_TAG-buster
  68. DOCKERFILE: $CI_PROJECT_DIR/support/docker/production/Dockerfile.buster
  69. build-docker-master:
  70. <<: *docker
  71. only:
  72. - master
  73. variables:
  74. DOCKER_IMAGE_NAME: chocobozzz/peertube:production-buster
  75. DOCKERFILE: $CI_PROJECT_DIR/support/docker/production/Dockerfile.buster