test.yml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  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 run pack
  21. - run: npm run gendocs
  22. - run: npm test
  23. - name: Verify no unstaged changes
  24. run: __test__/verify-no-unstaged-changes.sh
  25. test:
  26. strategy:
  27. matrix:
  28. runs-on: [ubuntu-latest, macos-latest, windows-latest]
  29. runs-on: ${{ matrix.runs-on }}
  30. steps:
  31. # Clone this repo
  32. - name: Checkout
  33. uses: actions/checkout@v2
  34. # Basic checkout
  35. - name: Basic checkout
  36. uses: ./
  37. with:
  38. ref: test-data/v2/basic
  39. path: basic
  40. - name: Verify basic
  41. shell: bash
  42. run: __test__/verify-basic.sh
  43. # Clean
  44. - name: Modify work tree
  45. shell: bash
  46. run: __test__/modify-work-tree.sh
  47. - name: Clean checkout
  48. uses: ./
  49. with:
  50. ref: test-data/v2/basic
  51. path: basic
  52. - name: Verify clean
  53. shell: bash
  54. run: __test__/verify-clean.sh
  55. # Side by side
  56. - name: Side by side checkout 1
  57. uses: ./
  58. with:
  59. ref: test-data/v2/side-by-side-1
  60. path: side-by-side-1
  61. - name: Side by side checkout 2
  62. uses: ./
  63. with:
  64. ref: test-data/v2/side-by-side-2
  65. path: side-by-side-2
  66. - name: Verify side by side
  67. shell: bash
  68. run: __test__/verify-side-by-side.sh
  69. # LFS
  70. - name: LFS checkout
  71. uses: ./
  72. with:
  73. repository: actions/checkout # hardcoded, otherwise doesn't work from a fork
  74. ref: test-data/v2/lfs
  75. path: lfs
  76. lfs: true
  77. - name: Verify LFS
  78. shell: bash
  79. run: __test__/verify-lfs.sh
  80. # Basic checkout using REST API
  81. - name: Remove basic
  82. if: runner.os != 'windows'
  83. run: rm -rf basic
  84. - name: Remove basic (Windows)
  85. if: runner.os == 'windows'
  86. shell: cmd
  87. run: rmdir /s /q basic
  88. - name: Override git version
  89. if: runner.os != 'windows'
  90. run: __test__/override-git-version.sh
  91. - name: Override git version (Windows)
  92. if: runner.os == 'windows'
  93. run: __test__\\override-git-version.cmd
  94. - name: Basic checkout using REST API
  95. uses: ./
  96. with:
  97. ref: test-data/v2/basic
  98. path: basic
  99. - name: Verify basic
  100. run: __test__/verify-basic.sh --archive
  101. test-proxy:
  102. runs-on: ubuntu-latest
  103. container:
  104. image: alpine/git:latest
  105. options: --dns 127.0.0.1
  106. services:
  107. squid-proxy:
  108. image: datadog/squid:latest
  109. ports:
  110. - 3128:3128
  111. env:
  112. https_proxy: http://squid-proxy:3128
  113. steps:
  114. # Clone this repo
  115. - name: Checkout
  116. uses: actions/checkout@users/ericsciple/m165proxy # todo: switch to v2
  117. # Basic checkout using git
  118. - name: Basic checkout
  119. uses: ./
  120. with:
  121. ref: test-data/v2/basic
  122. path: basic
  123. - name: Verify basic
  124. run: __test__/verify-basic.sh
  125. # Basic checkout using REST API
  126. - name: Remove basic
  127. run: rm -rf basic
  128. - name: Override git version
  129. run: __test__/override-git-version.sh
  130. - name: Basic checkout using REST API
  131. uses: ./
  132. with:
  133. ref: test-data/v2/basic
  134. path: basic
  135. - name: Verify basic
  136. run: __test__/verify-basic.sh --archive
  137. test-bypass-proxy:
  138. runs-on: ubuntu-latest
  139. env:
  140. https_proxy: http://no-such-proxy:3128
  141. no_proxy: api.github.com,github.com
  142. steps:
  143. # Clone this repo
  144. - name: Checkout
  145. uses: actions/checkout@v2
  146. # Basic checkout using git
  147. - name: Basic checkout
  148. uses: ./
  149. with:
  150. ref: test-data/v2/basic
  151. path: basic
  152. - name: Verify basic
  153. run: __test__/verify-basic.sh
  154. - name: Remove basic
  155. run: rm -rf basic
  156. # Basic checkout using REST API
  157. - name: Override git version
  158. run: __test__/override-git-version.sh
  159. - name: Basic checkout using REST API
  160. uses: ./
  161. with:
  162. ref: test-data/v2/basic
  163. path: basic
  164. - name: Verify basic
  165. run: __test__/verify-basic.sh --archive