.travis.yml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. sudo: true
  2. language: bash
  3. services:
  4. - docker
  5. env:
  6. global:
  7. - DEBIAN_FRONTEND="noninteractive"
  8. jobs:
  9. include:
  10. - stage: test
  11. if: type = pull_request
  12. language: python
  13. install:
  14. - pip install ansible ansible-lint
  15. - ansible-lint --version
  16. script:
  17. - ansible-playbook -i inventory site.yml --syntax-check
  18. - ansible-lint -v roles/netbootxyz
  19. - stage: development
  20. if: branch = development AND type != pull_request
  21. before_install:
  22. - ./script/retrieve_certs
  23. script:
  24. - ./script/build_release dev
  25. after_failure:
  26. - ./script/message failure
  27. deploy:
  28. - provider: s3
  29. edge: true
  30. access_key_id: $AWS_ACCESS_KEY_ID
  31. secret_access_key: $AWS_SECRET_ACCESS_KEY
  32. bucket: $BUCKET_DEV
  33. local_dir: s3out
  34. upload-dir: $TRAVIS_COMMIT
  35. skip_cleanup: true
  36. on:
  37. branch: development
  38. - provider: s3
  39. edge: true
  40. access_key_id: $AWS_ACCESS_KEY_ID
  41. secret_access_key: $AWS_SECRET_ACCESS_KEY
  42. bucket: $BUCKET_DEV
  43. local_dir: s3outver
  44. skip_cleanup: true
  45. on:
  46. branch: development
  47. after_deploy:
  48. - >
  49. if ! [ "$AFTER_DEPLOY_RUN" ]; then
  50. export AFTER_DEPLOY_RUN=1;
  51. ./script/message dev-push
  52. fi
  53. - stage: pull-request
  54. if: type = pull_request
  55. script:
  56. - ./script/build_release pr
  57. - stage: release-candidate
  58. if: branch = RC AND type != pull_request
  59. before_install:
  60. - ./script/retrieve_certs
  61. script:
  62. - ./script/build_release rc
  63. workspaces:
  64. create:
  65. name: githubassets
  66. paths:
  67. - githubout
  68. after_failure:
  69. - ./script/message failure
  70. before_deploy:
  71. - export RELEASE_TAG=$(cat version.txt)-RC
  72. deploy:
  73. - provider: s3
  74. edge: true
  75. access_key_id: $AWS_ACCESS_KEY_ID
  76. secret_access_key: $AWS_SECRET_ACCESS_KEY
  77. bucket: $BUCKET_STAGING
  78. local_dir: s3out-latest
  79. upload-dir: rc
  80. skip_cleanup: true
  81. on:
  82. branch: RC
  83. - provider: s3
  84. edge: true
  85. access_key_id: $AWS_ACCESS_KEY_ID
  86. secret_access_key: $AWS_SECRET_ACCESS_KEY
  87. bucket: $BUCKET_STAGING
  88. local_dir: s3out
  89. upload-dir: $RELEASE_TAG
  90. skip_cleanup: true
  91. on:
  92. branch: RC
  93. - provider: s3
  94. edge: true
  95. access_key_id: $AWS_ACCESS_KEY_ID
  96. secret_access_key: $AWS_SECRET_ACCESS_KEY
  97. bucket: $BUCKET_STAGING
  98. local_dir: s3outver
  99. skip_cleanup: true
  100. on:
  101. branch: RC
  102. - stage: rc-github
  103. if: branch = RC AND type != pull_request
  104. before_install:
  105. - ./script/pre_install
  106. workspaces:
  107. use: githubassets
  108. script: skip
  109. before_deploy:
  110. - export RELEASE_TAG=$(cat version.txt)-RC
  111. - ./script/tag
  112. deploy:
  113. - provider: releases
  114. api_key: $GITHUB_TOKEN
  115. file_glob: true
  116. file: githubout/*
  117. prerelease: true
  118. skip_cleanup: true
  119. on:
  120. branch: RC
  121. after_deploy:
  122. - aws configure set preview.cloudfront true
  123. - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_STAGING --paths "rc/*" "rc/ipxe/*"
  124. - ./script/message rc-push
  125. - stage: release
  126. if: branch = master AND type != pull_request
  127. before_install:
  128. - ./script/retrieve_certs
  129. script:
  130. - ./script/build_release release
  131. workspaces:
  132. create:
  133. name: githubassets
  134. paths:
  135. - githubout
  136. after_failure:
  137. - ./script/message failure
  138. before_deploy:
  139. - export RELEASE_TAG=$(cat version.txt)
  140. deploy:
  141. - provider: s3
  142. edge: true
  143. access_key_id: $AWS_ACCESS_KEY_ID
  144. secret_access_key: $AWS_SECRET_ACCESS_KEY
  145. bucket: $BUCKET_PROD
  146. local_dir: s3out-latest
  147. skip_cleanup: true
  148. on:
  149. branch: master
  150. - provider: s3
  151. edge: true
  152. access_key_id: $AWS_ACCESS_KEY_ID
  153. secret_access_key: $AWS_SECRET_ACCESS_KEY
  154. bucket: $BUCKET_PROD
  155. local_dir: s3out
  156. upload-dir: $RELEASE_TAG
  157. skip_cleanup: true
  158. on:
  159. branch: master
  160. - stage: release-github
  161. if: branch = master AND type != pull_request
  162. before_install:
  163. - ./script/pre_install
  164. workspaces:
  165. use: githubassets
  166. script: skip
  167. before_deploy:
  168. - export RELEASE_TAG=$(cat version.txt)
  169. - git tag ${RELEASE_TAG}
  170. deploy:
  171. - provider: releases
  172. api_key: $GITHUB_TOKEN
  173. file_glob: true
  174. file: githubout/*
  175. skip_cleanup: true
  176. on:
  177. branch: master
  178. after_deploy:
  179. - aws configure set preview.cloudfront true
  180. - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_PROD --paths "/*" "/ipxe/*"
  181. - ./script/message live-push