test.yml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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. # Basic checkout using REST API
  79. - name: Remove basic
  80. if: runner.os != 'windows'
  81. run: rm -rf basic
  82. - name: Remove basic (Windows)
  83. if: runner.os == 'windows'
  84. shell: cmd
  85. run: rmdir /s /q basic
  86. - name: Override git version
  87. if: runner.os != 'windows'
  88. run: __test__/override-git-version.sh
  89. - name: Override git version (Windows)
  90. if: runner.os == 'windows'
  91. run: __test__\\override-git-version.cmd
  92. - name: Basic checkout using REST API
  93. uses: ./
  94. with:
  95. ref: test-data/v2/basic
  96. path: basic
  97. - name: Verify basic
  98. run: __test__/verify-basic.sh --archive
  99. test-proxy:
  100. runs-on: ubuntu-latest
  101. container:
  102. image: alpine/git:latest
  103. options: --dns 127.0.0.1
  104. services:
  105. squid-proxy:
  106. image: datadog/squid:latest
  107. ports:
  108. - 3128:3128
  109. env:
  110. https_proxy: http://squid-proxy:3128
  111. steps:
  112. # Clone this repo
  113. - name: Checkout
  114. uses: actions/checkout@v2
  115. # Basic checkout using git
  116. - name: Basic checkout
  117. uses: ./
  118. with:
  119. ref: test-data/v2/basic
  120. path: basic
  121. - name: Verify basic
  122. run: __test__/verify-basic.sh
  123. # Basic checkout using REST API
  124. - name: Remove basic
  125. run: rm -rf basic
  126. - name: Override git version
  127. run: __test__/override-git-version.sh
  128. - name: Basic checkout using REST API
  129. uses: ./
  130. with:
  131. ref: test-data/v2/basic
  132. path: basic
  133. - name: Verify basic
  134. run: __test__/verify-basic.sh --archive
  135. test-bypass-proxy:
  136. runs-on: ubuntu-latest
  137. env:
  138. https_proxy: http://no-such-proxy:3128
  139. no_proxy: api.github.com,github.com
  140. steps:
  141. # Clone this repo
  142. - name: Checkout
  143. uses: actions/checkout@v2
  144. # Basic checkout using git
  145. - name: Basic checkout
  146. uses: ./
  147. with:
  148. ref: test-data/v2/basic
  149. path: basic
  150. - name: Verify basic
  151. run: __test__/verify-basic.sh
  152. - name: Remove basic
  153. run: rm -rf basic
  154. # Basic checkout using REST API
  155. - name: Override git version
  156. run: __test__/override-git-version.sh
  157. - name: Basic checkout using REST API
  158. uses: ./
  159. with:
  160. ref: test-data/v2/basic
  161. path: basic
  162. - name: Verify basic
  163. run: __test__/verify-basic.sh --archive