name: fileserver-nightly # The environments that cannot run on every pull request: a real network filesystem, a foreign # filesystem, and the long-running fault matrices. They are nightly rather than skipped because a # green pull-request run is not certification of any of them. on: workflow_dispatch: schedule: - cron: '0 18 * * *' permissions: contents: read concurrency: group: ${{ github.workflow }} cancel-in-progress: false jobs: fileserver-nfs-ambiguity: runs-on: ubuntu-latest timeout-minutes: 45 env: FILESERVER_NFS_TESTS: "true" steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # actions/checkout@v4.2.2 - name: Validate Gradle wrapper id: gradle-wrapper-validation uses: gradle/actions/wrapper-validation@3f131e8634966bd73d06cc69884922b02e6faf92 # gradle/actions@v6 - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # actions/setup-java@v4.7.1 with: distribution: temurin java-version: "21.0.11+10" cache: gradle cache-dependency-path: | src/**/*.gradle src/**/gradle-wrapper.properties src/**/gradle.lockfile - name: Start the NFSv4 certification environment run: docker compose -f infra/fileserver/nfs/compose.yml up -d --wait - name: Run the network-filesystem ambiguity suite working-directory: src run: >- ./gradlew :adapter:outbound:fileserver:test --tests '*NfsAmbiguityIntegrationTest' --no-daemon --stacktrace - name: Tear down the NFS environment if: always() run: docker compose -f infra/fileserver/nfs/compose.yml down -v fileserver-process-kill-matrix: runs-on: ubuntu-latest timeout-minutes: 45 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # actions/checkout@v4.2.2 - name: Validate Gradle wrapper id: gradle-wrapper-validation uses: gradle/actions/wrapper-validation@3f131e8634966bd73d06cc69884922b02e6faf92 # gradle/actions@v6 - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # actions/setup-java@v4.7.1 with: distribution: temurin java-version: "21.0.11+10" cache: gradle cache-dependency-path: | src/**/*.gradle src/**/gradle-wrapper.properties src/**/gradle.lockfile - name: Run the crash matrix and reconciliation suites working-directory: src run: >- ./gradlew :adapter:outbound:fileserver:test --tests '*CrashRecoveryMatrixTest' :application-core:test --tests '*FileReconciliationServiceTest' --rerun-tasks --no-daemon --stacktrace fileserver-large-file-performance: runs-on: ubuntu-latest timeout-minutes: 60 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # actions/checkout@v4.2.2 - name: Validate Gradle wrapper id: gradle-wrapper-validation uses: gradle/actions/wrapper-validation@3f131e8634966bd73d06cc69884922b02e6faf92 # gradle/actions@v6 - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # actions/setup-java@v4.7.1 with: distribution: temurin java-version: "21.0.11+10" cache: gradle cache-dependency-path: | src/**/*.gradle src/**/gradle-wrapper.properties src/**/gradle.lockfile - name: Run the large-file and slow-client suites under a constrained heap working-directory: src env: GRADLE_OPTS: -Xmx512m run: >- ./gradlew :adapter:outbound:fileserver:test --tests '*LargeFileBoundedMemoryTest' :adapter:outbound:fileserver:test --tests '*LocalAppendMemoryTest' --rerun-tasks --no-daemon --stacktrace fileserver-multi-instance-lease: runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # actions/checkout@v4.2.2 - name: Validate Gradle wrapper id: gradle-wrapper-validation uses: gradle/actions/wrapper-validation@3f131e8634966bd73d06cc69884922b02e6faf92 # gradle/actions@v6 - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # actions/setup-java@v4.7.1 with: distribution: temurin java-version: "21.0.11+10" cache: gradle cache-dependency-path: | src/**/*.gradle src/**/gradle-wrapper.properties src/**/gradle.lockfile - name: Prove no run commits bytes from a stale lease working-directory: src run: >- ./gradlew :application-core:test --tests '*MultiInstanceWriterLeaseTest' --rerun-tasks --no-daemon --stacktrace