vitess.io/vitess@v0.16.2/.github/workflows/endtoend.yml (about) 1 name: endtoend 2 on: [push, pull_request] 3 jobs: 4 5 build: 6 name: End-to-End Test 7 runs-on: ubuntu-22.04 8 steps: 9 - name: Skip CI 10 run: | 11 if [[ "${{contains( github.event.pull_request.labels.*.name, 'Skip CI')}}" == "true" ]]; then 12 echo "skipping CI due to the 'Skip CI' label" 13 exit 1 14 fi 15 16 - name: Check if workflow needs to be skipped 17 id: skip-workflow 18 run: | 19 skip='false' 20 if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then 21 skip='true' 22 fi 23 echo Skip ${skip} 24 echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT 25 26 - name: Check out code 27 if: steps.skip-workflow.outputs.skip-workflow == 'false' 28 uses: actions/checkout@v3 29 30 - name: Check for changes in relevant files 31 if: steps.skip-workflow.outputs.skip-workflow == 'false' 32 uses: frouioui/paths-filter@main 33 id: changes 34 with: 35 token: '' 36 filters: | 37 end_to_end: 38 - 'go/**/*.go' 39 - 'test.go' 40 - 'Makefile' 41 - 'build.env' 42 - 'go.sum' 43 - 'go.mod' 44 - 'proto/*.proto' 45 - 'tools/**' 46 - 'config/**' 47 - 'bootstrap.sh' 48 - '.github/workflows/endtoend.yml' 49 50 - name: Set up Go 51 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 52 uses: actions/setup-go@v3 53 with: 54 go-version: 1.20.3 55 56 - name: Tune the OS 57 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 58 run: | 59 sudo sysctl -w net.ipv4.ip_local_port_range="22768 65535" 60 61 - name: Get dependencies 62 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 63 run: | 64 sudo apt-get update 65 sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget 66 sudo service mysql stop 67 sudo service etcd stop 68 sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ 69 sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld 70 go mod download 71 72 - name: Run make minimaltools 73 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 74 run: | 75 make minimaltools 76 77 - name: Build 78 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 79 run: | 80 make build 81 82 - name: endtoend 83 if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' 84 timeout-minutes: 30 85 run: | 86 eatmydata -- tools/e2e_test_runner.sh