ci: use matrix to test containerd backed image store
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
parent
03decbc1e6
commit
70892220c8
6 changed files with 69 additions and 9 deletions
35
.github/workflows/.test-prepare.yml
vendored
Normal file
35
.github/workflows/.test-prepare.yml
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# reusable workflow
|
||||||
|
name: .test-prepare
|
||||||
|
|
||||||
|
# TODO: hide reusable workflow from the UI. Tracked in https://github.com/community/community/discussions/12025
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
outputs:
|
||||||
|
matrix:
|
||||||
|
description: Test matrix
|
||||||
|
value: ${{ jobs.run.outputs.matrix }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
run:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
outputs:
|
||||||
|
matrix: ${{ steps.set.outputs.matrix }}
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
-
|
||||||
|
name: Create matrix
|
||||||
|
id: set
|
||||||
|
uses: actions/github-script@v6
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
let matrix = ['graphdriver'];
|
||||||
|
if ("${{ contains(github.event.pull_request.labels.*.name, 'containerd-integration') || github.event_name != 'pull_request' }}" == "true") {
|
||||||
|
matrix.push('snapshotter');
|
||||||
|
}
|
||||||
|
await core.group(`Set matrix`, async () => {
|
||||||
|
core.info(`matrix: ${JSON.stringify(matrix)}`);
|
||||||
|
core.setOutput('matrix', JSON.stringify(matrix));
|
||||||
|
});
|
3
.github/workflows/.test.yml
vendored
3
.github/workflows/.test.yml
vendored
|
@ -17,7 +17,8 @@ env:
|
||||||
TESTSTAT_VERSION: v0.1.3
|
TESTSTAT_VERSION: v0.1.3
|
||||||
ITG_CLI_MATRIX_SIZE: 6
|
ITG_CLI_MATRIX_SIZE: 6
|
||||||
DOCKER_EXPERIMENTAL: 1
|
DOCKER_EXPERIMENTAL: 1
|
||||||
DOCKER_GRAPHDRIVER: overlay2
|
DOCKER_GRAPHDRIVER: ${{ inputs.storage == 'snapshotter' && 'overlayfs' || 'overlay2' }}
|
||||||
|
TEST_INTEGRATION_USE_SNAPSHOTTER: ${{ inputs.storage == 'snapshotter' && '1' || '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
unit:
|
unit:
|
||||||
|
|
11
.github/workflows/.windows.yml
vendored
11
.github/workflows/.windows.yml
vendored
|
@ -264,6 +264,9 @@ jobs:
|
||||||
- builtin
|
- builtin
|
||||||
- containerd
|
- containerd
|
||||||
test: ${{ fromJson(needs.integration-test-prepare.outputs.matrix) }}
|
test: ${{ fromJson(needs.integration-test-prepare.outputs.matrix) }}
|
||||||
|
exclude:
|
||||||
|
- storage: snapshotter
|
||||||
|
runtime: builtin
|
||||||
env:
|
env:
|
||||||
GOPATH: ${{ github.workspace }}\go
|
GOPATH: ${{ github.workspace }}\go
|
||||||
GOBIN: ${{ github.workspace }}\go\bin
|
GOBIN: ${{ github.workspace }}\go\bin
|
||||||
|
@ -354,6 +357,11 @@ jobs:
|
||||||
"--exec-root=$env:TEMP\moby-exec", `
|
"--exec-root=$env:TEMP\moby-exec", `
|
||||||
"--pidfile=$env:TEMP\docker.pid", `
|
"--pidfile=$env:TEMP\docker.pid", `
|
||||||
"--register-service"
|
"--register-service"
|
||||||
|
If ("${{ inputs.storage }}" -eq "snapshotter") {
|
||||||
|
# Make the env-var visible to the service-managed dockerd, as there's no CLI flag for this option.
|
||||||
|
& reg add "HKLM\SYSTEM\CurrentControlSet\Services\docker" /v Environment /t REG_MULTI_SZ /s '@' /d TEST_INTEGRATION_USE_SNAPSHOTTER=1
|
||||||
|
echo "TEST_INTEGRATION_USE_SNAPSHOTTER=1" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
|
||||||
|
}
|
||||||
Write-Host "Starting service"
|
Write-Host "Starting service"
|
||||||
Start-Service -Name docker
|
Start-Service -Name docker
|
||||||
Write-Host "Service started successfully!"
|
Write-Host "Service started successfully!"
|
||||||
|
@ -491,6 +499,9 @@ jobs:
|
||||||
runtime:
|
runtime:
|
||||||
- builtin
|
- builtin
|
||||||
- containerd
|
- containerd
|
||||||
|
exclude:
|
||||||
|
- storage: snapshotter
|
||||||
|
runtime: builtin
|
||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
name: Set up Go
|
name: Set up Go
|
||||||
|
|
9
.github/workflows/test.yml
vendored
9
.github/workflows/test.yml
vendored
|
@ -54,15 +54,20 @@ jobs:
|
||||||
*.cache-to=type=gha,scope=dev${{ matrix.mode }},mode=max
|
*.cache-to=type=gha,scope=dev${{ matrix.mode }},mode=max
|
||||||
*.output=type=cacheonly
|
*.output=type=cacheonly
|
||||||
|
|
||||||
|
test-prepare:
|
||||||
|
uses: ./.github/workflows/.test-prepare.yml
|
||||||
|
needs:
|
||||||
|
- validate-dco
|
||||||
|
|
||||||
test:
|
test:
|
||||||
needs:
|
needs:
|
||||||
|
- test-prepare
|
||||||
- build-dev
|
- build-dev
|
||||||
uses: ./.github/workflows/.test.yml
|
uses: ./.github/workflows/.test.yml
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
storage:
|
storage: ${{ fromJson(needs.test-prepare.outputs.matrix) }}
|
||||||
- graphdriver
|
|
||||||
with:
|
with:
|
||||||
storage: ${{ matrix.storage }}
|
storage: ${{ matrix.storage }}
|
||||||
|
|
||||||
|
|
10
.github/workflows/windows-2019.yml
vendored
10
.github/workflows/windows-2019.yml
vendored
|
@ -13,15 +13,19 @@ jobs:
|
||||||
validate-dco:
|
validate-dco:
|
||||||
uses: ./.github/workflows/.dco.yml
|
uses: ./.github/workflows/.dco.yml
|
||||||
|
|
||||||
run:
|
test-prepare:
|
||||||
|
uses: ./.github/workflows/.test-prepare.yml
|
||||||
needs:
|
needs:
|
||||||
- validate-dco
|
- validate-dco
|
||||||
|
|
||||||
|
run:
|
||||||
|
needs:
|
||||||
|
- test-prepare
|
||||||
uses: ./.github/workflows/.windows.yml
|
uses: ./.github/workflows/.windows.yml
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
storage:
|
storage: ${{ fromJson(needs.test-prepare.outputs.matrix) }}
|
||||||
- graphdriver
|
|
||||||
with:
|
with:
|
||||||
os: windows-2019
|
os: windows-2019
|
||||||
storage: ${{ matrix.storage }}
|
storage: ${{ matrix.storage }}
|
||||||
|
|
10
.github/workflows/windows-2022.yml
vendored
10
.github/workflows/windows-2022.yml
vendored
|
@ -16,15 +16,19 @@ jobs:
|
||||||
validate-dco:
|
validate-dco:
|
||||||
uses: ./.github/workflows/.dco.yml
|
uses: ./.github/workflows/.dco.yml
|
||||||
|
|
||||||
run:
|
test-prepare:
|
||||||
|
uses: ./.github/workflows/.test-prepare.yml
|
||||||
needs:
|
needs:
|
||||||
- validate-dco
|
- validate-dco
|
||||||
|
|
||||||
|
run:
|
||||||
|
needs:
|
||||||
|
- test-prepare
|
||||||
uses: ./.github/workflows/.windows.yml
|
uses: ./.github/workflows/.windows.yml
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
storage:
|
storage: ${{ fromJson(needs.test-prepare.outputs.matrix) }}
|
||||||
- graphdriver
|
|
||||||
with:
|
with:
|
||||||
os: windows-2022
|
os: windows-2022
|
||||||
storage: ${{ matrix.storage }}
|
storage: ${{ matrix.storage }}
|
||||||
|
|
Loading…
Reference in a new issue