vitess.io/vitess@v0.16.2/test/templates/cluster_endtoend_test_self_hosted.tpl (about) 1 name: {{.Name}} 2 on: [push, pull_request] 3 concurrency: 4 group: format('{0}-{1}', ${{"{{"}} github.ref {{"}}"}}, '{{.Name}}') 5 cancel-in-progress: true 6 7 jobs: 8 build: 9 name: Run endtoend tests on {{.Name}} 10 runs-on: self-hosted 11 12 steps: 13 - name: Skip CI 14 run: | 15 if [[ "{{"${{contains( github.event.pull_request.labels.*.name, 'Skip CI')}}"}}" == "true" ]]; then 16 echo "skipping CI due to the 'Skip CI' label" 17 exit 1 18 fi 19 20 - name: Check if workflow needs to be skipped 21 id: skip-workflow 22 run: | 23 skip='false' 24 if [[ "{{"${{github.event.pull_request}}"}}" == "" ]] && [[ "{{"${{github.ref}}"}}" != "refs/heads/main" ]] && [[ ! "{{"${{github.ref}}"}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "{{"${{github.ref}}"}}" =~ "refs/tags/.*" ]]; then 25 skip='true' 26 fi 27 echo Skip ${skip} 28 echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT 29 30 - name: Check out code 31 if: steps.skip-workflow.outputs.skip-workflow == 'false' 32 uses: actions/checkout@v3 33 34 - name: Check for changes in relevant files 35 if: steps.skip-workflow.outputs.skip-workflow == 'false' 36 uses: frouioui/paths-filter@main 37 id: changes 38 with: 39 token: '' 40 filters: | 41 end_to_end: 42 - 'go/**/*.go' 43 - 'test.go' 44 - 'Makefile' 45 - 'build.env' 46 - 'go.sum' 47 - 'go.mod' 48 - 'proto/*.proto' 49 - 'tools/**' 50 - 'config/**' 51 - '.github/docker/**' 52 - 'bootstrap.sh' 53 - '.github/workflows/{{.FileName}}' 54 55 - name: Build Docker Image 56 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 57 run: docker build -f {{.Dockerfile}} -t {{.ImageName}}:$GITHUB_SHA . 58 59 - name: Run test 60 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 61 timeout-minutes: 30 62 run: docker run --name "{{.ImageName}}_$GITHUB_SHA" {{.ImageName}}:$GITHUB_SHA /bin/bash -c 'source build.env && go run test.go -keep-data=true -docker=false -print-log -follow -shard {{.Shard}} -- -- --keep-data=true' 63 64 - name: Print Volume Used 65 if: always() && steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 66 run: | 67 docker inspect -f '{{"{{ (index .Mounts 0).Name }}"}}' {{.ImageName}}_$GITHUB_SHA 68 69 - name: Cleanup Docker Volume 70 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 71 run: | 72 docker rm -v {{.ImageName}}_$GITHUB_SHA 73 74 - name: Cleanup Docker Container 75 if: always() && steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 76 run: | 77 docker rm -f {{.ImageName}}_$GITHUB_SHA 78 79 - name: Cleanup Docker Image 80 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 81 run: | 82 docker image rm {{.ImageName}}:$GITHUB_SHA