Pārlūkot izejas kodu

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 gadi atpakaļ
vecāks
revīzija
eef6790f39
3 mainītis faili ar 15 papildinājumiem un 0 dzēšanām
  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 }}