Skip to content

backupengine: disallow path traversals via backup MANIFEST on restore #55879

backupengine: disallow path traversals via backup MANIFEST on restore

backupengine: disallow path traversals via backup MANIFEST on restore #55879

Workflow file for this run

name: endtoend
on:
push:
branches:
- "main"
- "release-[0-9]+.[0-9]"
tags: '**'
pull_request:
branches: '**'
permissions: read-all
jobs:
build:
name: End-to-End Test
runs-on: ubuntu-24.04
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
with:
egress-policy: audit
- name: Skip CI
run: |
if [[ "${{contains( github.event.pull_request.labels.*.name, 'Skip CI')}}" == "true" ]]; then
echo "skipping CI due to the 'Skip CI' label"
exit 1
fi
- name: Check out code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: 'false'
- name: Check for changes in relevant files
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
token: ''
filters: |
end_to_end:
- 'go/**/*.go'
- 'test.go'
- 'Makefile'
- 'build.env'
- 'go.sum'
- 'go.mod'
- 'proto/*.proto'
- 'tools/**'
- 'config/**'
- 'bootstrap.sh'
- '.github/workflows/endtoend.yml'
- name: Set up Go
if: steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version-file: go.mod
- name: Tune the OS
if: steps.changes.outputs.end_to_end == 'true'
uses: ./.github/actions/tune-os
- name: Setup MySQL
if: steps.changes.outputs.end_to_end == 'true'
uses: ./.github/actions/setup-mysql
with:
flavor: mysql-8.0
- name: Get dependencies
if: steps.changes.outputs.end_to_end == 'true'
run: |
sudo apt-get update
sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget
sudo service etcd stop
go mod download
- name: Run make minimaltools
if: steps.changes.outputs.end_to_end == 'true'
run: |
make minimaltools
- name: Build
if: steps.changes.outputs.end_to_end == 'true'
run: |
NOVTADMINBUILD=1 make build
- name: endtoend
if: steps.changes.outputs.end_to_end == 'true'
timeout-minutes: 30
run: |
# We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file
# which musn't be more than 107 characters long.
export VTDATAROOT="/tmp/"
tools/e2e_test_runner.sh