mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-08-16 12:16:36 +00:00
* ci: move the fusermount3 repair into a composite action Three copies of the same block were already drifting apart, and the target comes from PATH: only ever add setuid root to a root-owned, non-symlink binary under the system bin paths, and say why otherwise. * test: say that the process exited in the wait errors "process exit status 1 before ... accepted connections" is missing its verb. Also mark the SIGTERM return discarded - it fails with os.ErrProcessDone exactly when the select below already handles it. * ci: prefer the distro fusermount3 over escalating a shadow copy The shadowing /usr/local/bin/fusermount3 is not root-owned either, so setting its setuid bit would have handed root to a binary the runner user owns - the repair now symlinks the distro one earlier in PATH and touches nothing, keeping the in-place chmod for a root-owned binary with no distro alternative. A setuid bit only grants root when root owns the file, so accept an existing one only then. * ci: run the FUSE workflows when the shared action changes Their paths filters listed each workflow file but not the composite action all three now call.
75 lines
2.0 KiB
YAML
75 lines
2.0 KiB
YAML
name: "FUSE P2P Peer Chunk Sharing Integration Tests"
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'weed/command/mount*.go'
|
|
- 'weed/mount/**'
|
|
- 'weed/filer/mount_peer_registry*.go'
|
|
- 'weed/server/filer_grpc_server_mount_peer.go'
|
|
- 'weed/pb/mount_peer.proto'
|
|
- 'weed/pb/filer.proto'
|
|
- 'test/fuse_p2p/**'
|
|
- '.github/workflows/fuse-p2p-integration.yml'
|
|
- '.github/actions/fix-fusermount-setuid/**'
|
|
push:
|
|
branches: [master]
|
|
paths:
|
|
- 'weed/command/mount*.go'
|
|
- 'weed/mount/**'
|
|
- 'weed/filer/mount_peer_registry*.go'
|
|
- 'weed/server/filer_grpc_server_mount_peer.go'
|
|
- 'weed/pb/mount_peer.proto'
|
|
- 'weed/pb/filer.proto'
|
|
- 'test/fuse_p2p/**'
|
|
- '.github/actions/fix-fusermount-setuid/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.head_ref || github.ref }}/fuse-p2p-integration
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
fuse-p2p-integration:
|
|
name: FUSE P2P Peer Chunk Sharing
|
|
runs-on: ubuntu-22.04
|
|
timeout-minutes: 20
|
|
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v7
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v7
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
|
|
- name: Install FUSE dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libfuse3-dev
|
|
echo 'user_allow_other' | sudo tee -a /etc/fuse.conf
|
|
sudo chmod 644 /etc/fuse.conf
|
|
|
|
- name: Repair the fusermount3 setuid bit
|
|
uses: ./.github/actions/fix-fusermount-setuid
|
|
|
|
- name: Build SeaweedFS
|
|
run: go build -o weed/weed -buildvcs=false ./weed
|
|
|
|
- name: Run P2P integration tests
|
|
timeout-minutes: 15
|
|
env:
|
|
WEED_BINARY: ${{ github.workspace }}/weed/weed
|
|
run: go test -v -count=1 -timeout=12m ./test/fuse_p2p/...
|
|
|
|
- name: Upload logs on failure
|
|
if: failure()
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: fuse-p2p-test-logs
|
|
path: /tmp/seaweedfs-fuse-p2p-logs/
|
|
retention-days: 3
|