浏览代码

Update Github Actions to use our local clone for running tests

This allows test changes to be tested too, if they live in the PR with the image change.
Tianon Gravi 5 年之前
父节点
当前提交
eef6790f39
共有 3 个文件被更改,包括 15 次插入0 次删除
  1. 2 0
      .gitattributes
  2. 5 0
      .github/workflows/generate.sh
  3. 8 0
      .github/workflows/test-pr.yml

+ 2 - 0
.gitattributes

@@ -0,0 +1,2 @@
+# https://github.com/actions/checkout/issues/135#issuecomment-613361104
+* text eol=lf

+ 5 - 0
.github/workflows/generate.sh

@@ -17,12 +17,17 @@ for repo; do
 		.matrix.include[]
 		| ([ .meta.entries[].tags[0] ]) as $tags
 		| .name = ($tags | join(", "))
+		# replace "build" steps with something that uses "bashbrew" instead of "docker build"
+		# https://github.com/docker-library/bashbrew/blob/a40a54d4d81b9fd2e39b4d7ba3fe203e8b022a67/scripts/github-actions/generate.sh#L74-L93
 		| .runs.prepare += "\ngit clone --depth 1 https://github.com/docker-library/bashbrew.git ~/bashbrew\n~/bashbrew/bashbrew.sh --version"
 		| .runs.build = (
 			(if .os | startswith("windows-") then "export BASHBREW_ARCH=windows-amd64 BASHBREW_CONSTRAINTS=" + ([ .meta.entries[].constraints[] ] | join(", ") | @sh) + "\n" else "" end)
 			+ "export BASHBREW_LIBRARY=\"$PWD/library\"\n"
 			+ ([ $tags[] | "~/bashbrew/bashbrew.sh build " + @sh ] | join("\n"))
 		)
+		# use our local clone of official-images for running tests (so test changes can be tested too, if they live in the PR with the image change)
+		# https://github.com/docker-library/bashbrew/blob/a40a54d4d81b9fd2e39b4d7ba3fe203e8b022a67/scripts/github-actions/generate.sh#L95
+		| .runs.test |= gsub("[^\n\t ]+/run[.]sh "; "./test/run.sh ")
 	]' <<<"$newStrategy")"
 	jq -c . <<<"$newStrategy" > /dev/null # sanity check
 	strategy="$(jq -c '

+ 8 - 0
.github/workflows/test-pr.yml

@@ -47,6 +47,14 @@ jobs:
     name: ${{ matrix.name }}
     runs-on: ${{ matrix.os }}
     steps:
+      - name: Prepare Git
+        run: |
+          # enable symlinks on Windows (https://git-scm.com/docs/git-config#Documentation/git-config.txt-coresymlinks)
+          git config --global core.symlinks true
+          # also, make sure Windows symlinks are *real* symlinks (https://github.com/git-for-windows/git/pull/156)
+          echo '::set-env name=MSYS::winsymlinks:nativestrict'
+          # https://github.com/docker-library/bashbrew/blob/a40a54d4d81b9fd2e39b4d7ba3fe203e8b022a67/scripts/github-actions/generate.sh#L146-L149
+        if: runner.os == 'Windows'
       - uses: actions/checkout@v2
       - name: Prepare Environment
         run: ${{ matrix.runs.prepare }}