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.
127 lines
3.5 KiB
YAML
127 lines
3.5 KiB
YAML
name: "pjdfstest POSIX Compliance"
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, main ]
|
|
paths:
|
|
- 'weed/mount/**'
|
|
- 'weed/filer/**'
|
|
- 'test/pjdfstest/**'
|
|
- '.github/workflows/pjdfstest.yml'
|
|
pull_request:
|
|
branches: [ master, main ]
|
|
paths:
|
|
- 'weed/mount/**'
|
|
- 'weed/filer/**'
|
|
- 'test/pjdfstest/**'
|
|
- '.github/workflows/pjdfstest.yml'
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: pjdfstest/${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
pjdfstest:
|
|
name: pjdfstest
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 60
|
|
|
|
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: Start local Docker registry
|
|
run: |
|
|
if ! docker start registry 2>/dev/null; then
|
|
docker rm -f registry >/dev/null 2>&1 || true
|
|
docker run -d --restart=always -p 5000:5000 --name registry registry:2
|
|
fi
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v4
|
|
with:
|
|
driver-opts: network=host
|
|
|
|
- name: Set up Docker Compose
|
|
uses: docker/setup-compose-action@v2
|
|
|
|
- name: Build weed race binary
|
|
run: |
|
|
cd docker
|
|
make binary_race
|
|
|
|
- name: Build SeaweedFS e2e image
|
|
uses: docker/build-push-action@v7
|
|
with:
|
|
context: docker
|
|
file: docker/Dockerfile.e2e
|
|
tags: localhost:5000/chrislusf/seaweedfs:e2e
|
|
push: true
|
|
cache-from: type=gha,scope=pjdfstest-e2e
|
|
cache-to: type=gha,mode=max,scope=pjdfstest-e2e
|
|
|
|
- name: Tag e2e image for docker compose
|
|
run: |
|
|
docker pull localhost:5000/chrislusf/seaweedfs:e2e
|
|
docker tag localhost:5000/chrislusf/seaweedfs:e2e chrislusf/seaweedfs:e2e
|
|
|
|
- name: Build pjdfstest image
|
|
uses: docker/build-push-action@v7
|
|
with:
|
|
context: test/pjdfstest
|
|
build-contexts: |
|
|
chrislusf/seaweedfs:e2e=docker-image://localhost:5000/chrislusf/seaweedfs:e2e
|
|
tags: localhost:5000/chrislusf/seaweedfs:pjdfstest
|
|
push: true
|
|
cache-from: type=gha,scope=pjdfstest-harness
|
|
cache-to: type=gha,mode=max,scope=pjdfstest-harness
|
|
|
|
- name: Tag pjdfstest image for docker compose
|
|
run: |
|
|
docker pull localhost:5000/chrislusf/seaweedfs:pjdfstest
|
|
docker tag localhost:5000/chrislusf/seaweedfs:pjdfstest chrislusf/seaweedfs:pjdfstest
|
|
|
|
- name: Start SeaweedFS cluster
|
|
run: |
|
|
docker compose -f test/pjdfstest/docker-compose.yml up --wait
|
|
|
|
- name: Run pjdfstest
|
|
run: |
|
|
set -o pipefail
|
|
docker compose -f test/pjdfstest/docker-compose.yml exec -T mount \
|
|
/run.sh 2>&1 | tee /tmp/pjdfstest-output.log
|
|
|
|
- name: Collect logs
|
|
if: always()
|
|
run: |
|
|
mkdir -p /tmp/pjdfstest-docker-logs
|
|
for svc in master volume filer mount; do
|
|
docker compose -f test/pjdfstest/docker-compose.yml logs "$svc" \
|
|
> "/tmp/pjdfstest-docker-logs/${svc}.log" 2>&1 || true
|
|
done
|
|
|
|
- name: Tear down
|
|
if: always()
|
|
run: |
|
|
docker compose -f test/pjdfstest/docker-compose.yml down -v
|
|
|
|
- name: Upload logs
|
|
if: always()
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: pjdfstest-results
|
|
path: |
|
|
/tmp/pjdfstest-output.log
|
|
/tmp/pjdfstest-docker-logs/
|
|
retention-days: 7
|