mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-12-21 06:57:51 +08:00
7034fd155f
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](4d34df0c23...fac708d667
)
---
updated-dependencies:
- dependency-name: actions/setup-go
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
105 lines
4.1 KiB
YAML
105 lines
4.1 KiB
YAML
name: "End to End"
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
concurrency:
|
|
group: ${{ github.head_ref }}/e2e
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: docker
|
|
|
|
jobs:
|
|
e2e:
|
|
name: FUSE Mount
|
|
runs-on: ubuntu-22.04
|
|
timeout-minutes: 15
|
|
steps:
|
|
- name: Set up Go 1.x
|
|
uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v2
|
|
with:
|
|
go-version: ^1.13
|
|
id: go
|
|
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v2
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y fuse
|
|
|
|
- name: Start SeaweedFS
|
|
timeout-minutes: 5
|
|
run: make build_e2e && docker compose -f ./compose/e2e-mount.yml up --wait
|
|
|
|
- name: Run FIO
|
|
timeout-minutes: 15
|
|
run: |
|
|
echo "Starting FIO at: $(date)"
|
|
# Concurrent r/w
|
|
echo 'Run randrw with size=16M bs=4k'
|
|
docker compose -f ./compose/e2e-mount.yml exec mount timeout -k5 60 fio --name=fiotest --filename=/mnt/seaweedfs/fiotest --size=16M --rw=randrw --bs=4k --direct=1 --numjobs=8 --ioengine=libaio --iodepth=32 --group_reporting --runtime=30 --time_based=1
|
|
|
|
echo "Verify FIO at: $(date)"
|
|
# Verified write
|
|
echo 'Run randwrite with size=16M bs=4k'
|
|
docker compose -f ./compose/e2e-mount.yml exec mount timeout -k5 60 fio --name=fiotest --filename=/mnt/seaweedfs/fiotest --size=16M --rw=randwrite --bs=4k --direct=1 --numjobs=8 --ioengine=libaio --iodepth=32 --group_reporting --runtime=30 --time_based=1 --do_verify=0 --verify=crc32c --verify_backlog=1
|
|
|
|
- name: Run FIO
|
|
timeout-minutes: 15
|
|
run: |
|
|
echo "Starting FIO at: $(date)"
|
|
# Concurrent r/w
|
|
echo 'Run randrw with size=16M bs=128k'
|
|
docker compose -f ./compose/e2e-mount.yml exec mount timeout -k5 60 fio --name=fiotest --filename=/mnt/seaweedfs/fiotest --size=16M --rw=randrw --bs=128k --direct=1 --numjobs=8 --ioengine=libaio --iodepth=32 --group_reporting --runtime=30 --time_based=1
|
|
|
|
echo "Verify FIO at: $(date)"
|
|
# Verified write
|
|
echo 'Run randwrite with size=16M bs=128k'
|
|
docker compose -f ./compose/e2e-mount.yml exec mount timeout -k5 60 fio --name=fiotest --filename=/mnt/seaweedfs/fiotest --size=16M --rw=randwrite --bs=128k --direct=1 --numjobs=8 --ioengine=libaio --iodepth=32 --group_reporting --runtime=30 --time_based=1 --do_verify=0 --verify=crc32c --verify_backlog=1
|
|
|
|
- name: Run FIO
|
|
timeout-minutes: 15
|
|
run: |
|
|
echo "Starting FIO at: $(date)"
|
|
# Concurrent r/w
|
|
echo 'Run randrw with size=16M bs=1m'
|
|
docker compose -f ./compose/e2e-mount.yml exec mount timeout -k5 60 fio --name=fiotest --filename=/mnt/seaweedfs/fiotest --size=16M --rw=randrw --bs=1m --direct=1 --numjobs=8 --ioengine=libaio --iodepth=32 --group_reporting --runtime=30 --time_based=1
|
|
|
|
echo "Verify FIO at: $(date)"
|
|
# Verified write
|
|
echo 'Run randwrite with size=16M bs=1m'
|
|
docker compose -f ./compose/e2e-mount.yml exec mount timeout -k5 60 fio --name=fiotest --filename=/mnt/seaweedfs/fiotest --size=16M --rw=randwrite --bs=1m --direct=1 --numjobs=8 --ioengine=libaio --iodepth=32 --group_reporting --runtime=30 --time_based=1 --do_verify=0 --verify=crc32c --verify_backlog=1
|
|
|
|
- name: Save logs
|
|
if: always()
|
|
run: |
|
|
docker compose -f ./compose/e2e-mount.yml logs > output.log
|
|
echo 'Showing last 500 log lines of mount service:'
|
|
docker compose -f ./compose/e2e-mount.yml logs --tail 500 mount
|
|
|
|
- name: Check for data races
|
|
if: always()
|
|
continue-on-error: true # TODO: remove this comment to enable build failure on data races (after all are fixed)
|
|
run: grep -A50 'DATA RACE' output.log && exit 1 || exit 0
|
|
|
|
- name: Archive logs
|
|
if: always()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: output-logs
|
|
path: docker/output.log
|
|
|
|
- name: Cleanup
|
|
if: always()
|
|
run: docker compose -f ./compose/e2e-mount.yml down --volumes --remove-orphans --rmi all
|