.travis.yml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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. after_deploy:
  39. - ./script/message dev-push
  40. - stage: pull-request
  41. if: type = pull_request
  42. script:
  43. - ./script/build_release pr
  44. - stage: release-candidate
  45. if: branch = RC AND type != pull_request
  46. before_install:
  47. - ./script/retrieve_certs
  48. script:
  49. - ./script/build_release rc
  50. workspaces:
  51. create:
  52. name: githubassets
  53. paths:
  54. - githubout
  55. after_failure:
  56. - ./script/message failure
  57. before_deploy:
  58. - export RELEASE_TAG=$(cat version.txt)-RC
  59. deploy:
  60. - provider: s3
  61. edge: true
  62. access_key_id: $AWS_ACCESS_KEY_ID
  63. secret_access_key: $AWS_SECRET_ACCESS_KEY
  64. bucket: $BUCKET_STAGING
  65. local_dir: s3out-latest
  66. upload-dir: rc
  67. skip_cleanup: true
  68. on:
  69. branch: RC
  70. - provider: s3
  71. edge: true
  72. access_key_id: $AWS_ACCESS_KEY_ID
  73. secret_access_key: $AWS_SECRET_ACCESS_KEY
  74. bucket: $BUCKET_STAGING
  75. local_dir: s3out
  76. upload-dir: $RELEASE_TAG
  77. skip_cleanup: true
  78. on:
  79. branch: RC
  80. - stage: rc-github
  81. if: branch = RC AND type != pull_request
  82. before_install:
  83. - ./script/pre_install
  84. workspaces:
  85. use: githubassets
  86. script: skip
  87. before_deploy:
  88. - export RELEASE_TAG=$(cat version.txt)-RC
  89. - git tag ${RELEASE_TAG}
  90. deploy:
  91. - provider: releases
  92. api_key: $GITHUB_TOKEN
  93. file_glob: true
  94. file: githubout/*
  95. prerelease: true
  96. skip_cleanup: true
  97. on:
  98. branch: RC
  99. after_deploy:
  100. - aws configure set preview.cloudfront true
  101. - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_STAGING --paths "rc/*" "rc/ipxe/*"
  102. - ./script/message rc-push
  103. - stage: release
  104. if: branch = master AND type != pull_request
  105. before_install:
  106. - ./script/retrieve_certs
  107. script:
  108. - ./script/build_release release
  109. workspaces:
  110. create:
  111. name: githubassets
  112. paths:
  113. - githubout
  114. after_failure:
  115. - ./script/message failure
  116. before_deploy:
  117. - export RELEASE_TAG=$(cat version.txt)
  118. deploy:
  119. - provider: s3
  120. edge: true
  121. access_key_id: $AWS_ACCESS_KEY_ID
  122. secret_access_key: $AWS_SECRET_ACCESS_KEY
  123. bucket: $BUCKET_PROD
  124. local_dir: s3out-latest
  125. skip_cleanup: true
  126. on:
  127. branch: master
  128. - provider: s3
  129. edge: true
  130. access_key_id: $AWS_ACCESS_KEY_ID
  131. secret_access_key: $AWS_SECRET_ACCESS_KEY
  132. bucket: $BUCKET_PROD
  133. local_dir: s3out
  134. upload-dir: $RELEASE_TAG
  135. skip_cleanup: true
  136. on:
  137. branch: master
  138. - stage: release-github
  139. if: branch = master AND type != pull_request
  140. before_install:
  141. - ./script/pre_install
  142. workspaces:
  143. use: githubassets
  144. script: skip
  145. before_deploy:
  146. - export RELEASE_TAG=$(cat version.txt)
  147. - git tag ${RELEASE_TAG}
  148. deploy:
  149. - provider: releases
  150. api_key: $GITHUB_TOKEN
  151. file_glob: true
  152. file: githubout/*
  153. skip_cleanup: true
  154. on:
  155. branch: master
  156. after_deploy:
  157. - aws configure set preview.cloudfront true
  158. - aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DIST_ID_PROD --paths "/*" "/ipxe/*"
  159. - ./script/message live-push