mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-26 15:00:48 +01:00
GitHub is retiring ubuntu-22.04; move all 94 runs-on pins across 40 workflows to ubuntu-24.04. rust_binaries_release: the arm64 cross step was jammy-era — noble keeps apt sources in deb822 ubuntu.sources (the sources.list edit was a silent no-op that left amd64 repos open to arm64 and 404'd) and ports suites must say noble. Pin deb822 stanzas to amd64 and add noble ports entries.
86 lines
2.5 KiB
YAML
86 lines
2.5 KiB
YAML
name: "FUSE Integration Tests"
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, main ]
|
|
paths:
|
|
- 'weed/**'
|
|
- 'test/fuse_integration/**'
|
|
- '.github/workflows/fuse-integration.yml'
|
|
- '.github/actions/fix-fusermount-setuid/**'
|
|
pull_request:
|
|
branches: [ master, main ]
|
|
paths:
|
|
- 'weed/**'
|
|
- 'test/fuse_integration/**'
|
|
- '.github/workflows/fuse-integration.yml'
|
|
- '.github/actions/fix-fusermount-setuid/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }}
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
fuse-integration:
|
|
name: FUSE Integration Testing
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 50
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v7
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v7
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
cache: ${{ runner.environment == 'github-hosted' }}
|
|
|
|
- name: Configure FUSE
|
|
run: |
|
|
# Nothing to install: fuse3 ships fusermount3 and is pre-installed, and
|
|
# go-fuse is pure Go, so the libfuse headers were never linked against.
|
|
# Allow non-root FUSE mounts with allow_other
|
|
echo 'user_allow_other' | sudo tee -a /etc/fuse.conf
|
|
sudo chmod 644 /etc/fuse.conf
|
|
# Verify FUSE installation
|
|
fusermount3 --version || fusermount --version || true
|
|
ls -la /dev/fuse
|
|
|
|
- name: Repair the fusermount3 setuid bit
|
|
uses: ./.github/actions/fix-fusermount-setuid
|
|
|
|
- name: Build SeaweedFS
|
|
run: |
|
|
cd weed
|
|
go build -tags "elastic gocdk sqlite ydb tarantool tikv rclone" -o weed .
|
|
chmod +x weed
|
|
./weed version
|
|
# Make weed binary available in PATH for the test framework
|
|
sudo cp weed /usr/local/bin/weed
|
|
|
|
- name: Install test dependencies
|
|
run: |
|
|
cd test/fuse_integration
|
|
go mod download
|
|
|
|
- name: Run FUSE Integration Tests
|
|
run: |
|
|
set -o pipefail
|
|
cd test/fuse_integration
|
|
echo "Running full FUSE integration test suite..."
|
|
go test -v -count=1 -timeout=45m ./... 2>&1 | tee /tmp/fuse-test-output.log
|
|
|
|
- name: Upload Test Logs
|
|
if: always()
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: fuse-integration-test-results
|
|
path: |
|
|
/tmp/fuse-test-output.log
|
|
/tmp/seaweedfs-fuse-logs/
|
|
retention-days: 7
|