name: E2E on: workflow_dispatch: schedule: - cron: '0 0 * * 0' # at midnight of each sunday push: branches: - main pull_request: branches: - main env: CARGO_TERM_COLOR: always jobs: skip-check: permissions: actions: write contents: read runs-on: ubuntu-latest outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: - id: skip_check uses: fkirc/skip-duplicate-actions@v5 with: concurrent_skipping: 'same_content_newer' cancel_others: true paths_ignore: '["*.md"]' s3s-e2e: needs: skip-check if: needs.skip-check.outputs.should_skip != 'true' runs-on: ubuntu-latest timeout-minutes: 20 steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - uses: arduino/setup-protoc@v3 with: version: "27.0" - uses: Nugine/setup-flatc@v1 with: version: "24.3.25" - name: Build binaries run: | touch rustfs/build.rs cargo build -p rustfs --bins - name: Install s3s-e2e run: | cargo install s3s-e2e --git https://github.com/Nugine/s3s.git s3s-e2e --version - name: Run tests run: | export SKIP_BUILD=1 nohup ./scripts/run.sh & sleep 3 export AWS_ACCESS_KEY_ID=rustfsadmin export AWS_SECRET_ACCESS_KEY=rustfsadmin export AWS_REGION=us-east-1 export AWS_ENDPOINT_URL=http://localhost:9000 export RUST_LOG="s3s_e2e=debug,s3s_test=info,s3s=debug" export RUST_BACKTRACE=full s3s-e2e killall rustfs ### Temporarily disabled because it is not working # e2e: # # See this url if required matrix jobs are hanging # # https://github.com/fkirc/skip-duplicate-actions#how-to-use-skip-check-with-required-matrix-jobs # needs: skip-check # if: needs.skip-check.outputs.should_skip != 'true' # timeout-minutes: 30 # runs-on: ubuntu-latest # strategy: # matrix: # rust: # - stable # # - nightly # steps: # - uses: arduino/setup-protoc@v3 # with: # version: "27.0" # - uses: Nugine/setup-flatc@v1 # with: # version: "24.3.25" # - uses: actions/checkout@v4 # - name: toolchain # uses: dtolnay/rust-toolchain@master # with: # toolchain: ${{ matrix.rust }} # # components: rustfmt, clippy # - uses: Swatinem/rust-cache@v2 # with: # cache-on-failure: true # - name: run fs start # working-directory: . # run: | # nohup make e2e-server & # - name: run fs test # working-directory: . # run: | # make probe-e2e # - name: e2e test # run: cargo test -p e2e_test --lib