From 6dbf7d8d6564dea5fbd0cf6fa6b2816272ef4745 Mon Sep 17 00:00:00 2001 From: Nugine Date: Sun, 2 Mar 2025 02:14:41 +0800 Subject: [PATCH] ci: reduce setup time --- .github/workflows/ci.yml | 95 +++++----------------------------------- scripts/e2e-run.sh | 15 ++++++- 2 files changed, 23 insertions(+), 87 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3c43685d..783f20ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,13 +37,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - with: - cache-shared-key: "develop" - - - name: Install s3s-e2e - run: | - cargo install s3s-e2e --git https://github.com/Nugine/s3s.git - s3s-e2e --version - name: Format run: cargo fmt --all --check @@ -52,40 +45,24 @@ jobs: run: cargo check --all-targets # TODO: cargo clippy + - name: Test + run: cargo test --all --exclude e2e_test + - name: Build debug run: | touch rustfs/build.rs cargo build -p rustfs --bins - - # - name: Build release - # run: | - # touch rustfs/build.rs - # cargo build -p rustfs --bins --release - - run: | + - name: Pack artifacts + run: | mkdir -p ./target/artifacts cp target/debug/rustfs ./target/artifacts/rustfs-debug - # cp target/release/rustfs ./target/artifacts/rustfs-release - uses: actions/upload-artifact@v4 with: name: rustfs path: ./target/artifacts/* - test: - name: Test - needs: - - skip-check - - develop - if: needs.skip-check.outputs.should_skip != 'true' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/setup - with: - cache-shared-key: "test" - - run: cargo test --all --exclude e2e_test - s3s-e2e: name: E2E (s3s-e2e) needs: @@ -95,10 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 with: - cache-shared-key: "develop" - cache-save-if: false + cache-on-failure: true + cache-all-crates: true - name: Install s3s-e2e run: | @@ -110,65 +88,12 @@ jobs: name: rustfs path: ./target/artifacts - - name: Run rustfs - run: | - ./scripts/e2e-run.sh ./target/artifacts/rustfs-debug /data/rustfs - sleep 10 - - name: Run s3s-e2e timeout-minutes: 10 run: | - 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 - sudo killall rustfs-debug + ./scripts/e2e-run.sh ./target/artifacts/rustfs-debug /tmp/rustfs - uses: actions/upload-artifact@v4 with: name: s3s-e2e.logs path: /tmp/rustfs.log - - # mint: - # name: E2E (mint) - # needs: - # - skip-check - # - develop - # if: needs.skip-check.outputs.should_skip != 'true' - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - uses: ./.github/actions/setup - # with: - # cache-shared-key: "develop" - # cache-save-if: false - - # - uses: actions/download-artifact@v4 - # with: - # name: rustfs - # path: ./target/artifacts - - # - name: Run rustfs - # run: | - # ./scripts/e2e-run.sh ./target/artifacts/rustfs-release /data/rustfs - # sleep 10 - - # - name: Run mint - # timeout-minutes: 10 - # run: | - # docker run \ - # -e "SERVER_ENDPOINT=localhost:9000" \ - # -e "ACCESS_KEY=rustfsadmin" \ - # -e "SECRET_KEY=rustfsadmin" \ - # -e "ENABLE_HTTPS=0" \ - # --network host \ - # minio/mint:edge - # sudo killall rustfs-release - - # - uses: actions/upload-artifact@v4 - # with: - # name: mint.logs - # path: /tmp/rustfs.log diff --git a/scripts/e2e-run.sh b/scripts/e2e-run.sh index 26e3d9c6..9b4392e8 100755 --- a/scripts/e2e-run.sh +++ b/scripts/e2e-run.sh @@ -3,9 +3,20 @@ BIN=$1 VOLUME=$2 chmod +x $BIN -sudo mkdir -p $VOLUME +mkdir -p $VOLUME export RUST_LOG="rustfs=debug,ecstore=debug,s3s=debug,iam=debug" export RUST_BACKTRACE=full +$BIN $VOLUME > /tmp/rustfs.log 2>&1 & -sudo nohup $BIN $VOLUME > /tmp/rustfs.log 2>&1 & +sleep 10 + +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 $BIN