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: ./.github/actions/setup - name: Build binaries run: | touch rustfs/build.rs cargo build -p rustfs --bins - name: Install s3s-e2e run: | mkdir -p target/s3s-e2e cargo install s3s-e2e \ --git https://github.com/Nugine/s3s.git \ --target-dir target/s3s-e2e \ --force 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 mint: needs: skip-check if: needs.skip-check.outputs.should_skip != 'true' runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - name: Build binaries run: | touch rustfs/build.rs cargo build -p rustfs --bins --release - name: run this rustfs server run: | sudo mkdir -p /data/rustfs sudo nohup ./target/release/rustfs /data/rustfs & - name: run mint test task run: | ps aux | grep rustfs SERVER_ADDRESS=$(ifconfig eth0 | awk 'NR==2 { print $2 }') docker run -e SERVER_ENDPOINT=${SERVER_ADDRESS}:9000 \ -e ACCESS_KEY=rustfsadmin \ -e SECRET_KEY=rustfsadmin \ -e ENABLE_HTTPS=0 \ minio/mint ### 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