1
0

.travis.yml 5.2 KB

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