test.yml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. name: Build and Test
  2. on:
  3. pull_request:
  4. push:
  5. branches:
  6. - master
  7. - releases/*
  8. jobs:
  9. build:
  10. runs-on: ubuntu-latest
  11. steps:
  12. - uses: actions/setup-node@v1
  13. with:
  14. node-version: 12.x
  15. - uses: actions/checkout@v2
  16. - run: npm ci
  17. - run: npm run build
  18. - run: npm run format-check
  19. - run: npm run lint
  20. - run: npm test
  21. - name: Verify no unstaged changes
  22. run: __test__/verify-no-unstaged-changes.sh
  23. test:
  24. strategy:
  25. matrix:
  26. runs-on: [ubuntu-latest, macos-latest, windows-latest]
  27. runs-on: ${{ matrix.runs-on }}
  28. steps:
  29. # Clone this repo
  30. - name: Checkout
  31. uses: actions/checkout@v2
  32. # Basic checkout
  33. - name: Basic checkout
  34. uses: ./
  35. with:
  36. ref: test-data/v2/basic
  37. path: basic
  38. - name: Verify basic
  39. shell: bash
  40. run: __test__/verify-basic.sh
  41. # Clean
  42. - name: Modify work tree
  43. shell: bash
  44. run: __test__/modify-work-tree.sh
  45. - name: Clean checkout
  46. uses: ./
  47. with:
  48. ref: test-data/v2/basic
  49. path: basic
  50. - name: Verify clean
  51. shell: bash
  52. run: __test__/verify-clean.sh
  53. # Side by side
  54. - name: Side by side checkout 1
  55. uses: ./
  56. with:
  57. ref: test-data/v2/side-by-side-1
  58. path: side-by-side-1
  59. - name: Side by side checkout 2
  60. uses: ./
  61. with:
  62. ref: test-data/v2/side-by-side-2
  63. path: side-by-side-2
  64. - name: Verify side by side
  65. shell: bash
  66. run: __test__/verify-side-by-side.sh
  67. # LFS
  68. - name: LFS checkout
  69. uses: ./
  70. with:
  71. repository: actions/checkout # hardcoded, otherwise doesn't work from a fork
  72. ref: test-data/v2/lfs
  73. path: lfs
  74. lfs: true
  75. - name: Verify LFS
  76. shell: bash
  77. run: __test__/verify-lfs.sh
  78. # Submodules false
  79. - name: Submodules false checkout
  80. uses: ./
  81. with:
  82. ref: test-data/v2/submodule
  83. path: submodules-false
  84. - name: Verify submodules false
  85. run: __test__/verify-submodules-false.sh
  86. # Submodules one level
  87. - name: Submodules true checkout
  88. uses: ./
  89. with:
  90. ref: test-data/v2/submodule
  91. path: submodules-true
  92. submodules: true
  93. - name: Verify submodules true
  94. run: __test__/verify-submodules-true.sh
  95. # Submodules recursive
  96. - name: Submodules recursive checkout
  97. uses: ./
  98. with:
  99. ref: test-data/v2/submodule
  100. path: submodules-recursive
  101. submodules: recursive
  102. - name: Verify submodules recursive
  103. run: __test__/verify-submodules-recursive.sh
  104. # Basic checkout using REST API
  105. - name: Remove basic
  106. if: runner.os != 'windows'
  107. run: rm -rf basic
  108. - name: Remove basic (Windows)
  109. if: runner.os == 'windows'
  110. shell: cmd
  111. run: rmdir /s /q basic
  112. - name: Override git version
  113. if: runner.os != 'windows'
  114. run: __test__/override-git-version.sh
  115. - name: Override git version (Windows)
  116. if: runner.os == 'windows'
  117. run: __test__\\override-git-version.cmd
  118. - name: Basic checkout using REST API
  119. uses: ./
  120. with:
  121. ref: test-data/v2/basic
  122. path: basic
  123. - name: Verify basic
  124. run: __test__/verify-basic.sh --archive
  125. test-proxy:
  126. runs-on: ubuntu-latest
  127. container:
  128. image: alpine/git:latest
  129. options: --dns 127.0.0.1
  130. services:
  131. squid-proxy:
  132. image: datadog/squid:latest
  133. ports:
  134. - 3128:3128
  135. env:
  136. https_proxy: http://squid-proxy:3128
  137. steps:
  138. # Clone this repo
  139. - name: Checkout
  140. uses: actions/checkout@v2
  141. # Basic checkout using git
  142. - name: Basic checkout
  143. uses: ./
  144. with:
  145. ref: test-data/v2/basic
  146. path: basic
  147. - name: Verify basic
  148. run: __test__/verify-basic.sh
  149. # Basic checkout using REST API
  150. - name: Remove basic
  151. run: rm -rf basic
  152. - name: Override git version
  153. run: __test__/override-git-version.sh
  154. - name: Basic checkout using REST API
  155. uses: ./
  156. with:
  157. ref: test-data/v2/basic
  158. path: basic
  159. - name: Verify basic
  160. run: __test__/verify-basic.sh --archive
  161. test-bypass-proxy:
  162. runs-on: ubuntu-latest
  163. env:
  164. https_proxy: http://no-such-proxy:3128
  165. no_proxy: api.github.com,github.com
  166. steps:
  167. # Clone this repo
  168. - name: Checkout
  169. uses: actions/checkout@v2
  170. # Basic checkout using git
  171. - name: Basic checkout
  172. uses: ./
  173. with:
  174. ref: test-data/v2/basic
  175. path: basic
  176. - name: Verify basic
  177. run: __test__/verify-basic.sh
  178. - name: Remove basic
  179. run: rm -rf basic
  180. # Basic checkout using REST API
  181. - name: Override git version
  182. run: __test__/override-git-version.sh
  183. - name: Basic checkout using REST API
  184. uses: ./
  185. with:
  186. ref: test-data/v2/basic
  187. path: basic
  188. - name: Verify basic
  189. run: __test__/verify-basic.sh --archive