Compare commits

...

2 Commits

Author SHA1 Message Date
overtrue 5b14c18131 test(ci): accept top.disk through authenticated proxy 2026-09-28 23:14:14 +08:00
overtrue 8430cadb03 test(ci): probe service acceptance on hosted Docker runners 2026-09-28 19:04:02 +08:00
4 changed files with 32 additions and 18 deletions
@@ -38,7 +38,7 @@ permissions:
jobs:
health-service:
name: Verify bounded health service over mTLS
runs-on: dind-sm-standard-2
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- name: Checkout exact RustFS source
@@ -38,7 +38,7 @@ permissions:
jobs:
profile-memory:
name: Verify signed service memory profile over mTLS
runs-on: dind-sm-standard-2
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- name: Checkout exact RustFS source
@@ -57,7 +57,7 @@ permissions:
jobs:
profile-threads:
name: Verify Linux x86_64 profile.threads service job
runs-on: dind-sm-standard-2
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- name: Checkout acceptance harness
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
name: Connect top.disk service-job acceptance
name: Connect top.disk proxy service-job acceptance
on:
workflow_dispatch:
@@ -38,7 +38,7 @@ on:
required: true
type: string
connect_sha:
description: Exact Connect top.disk service-job acceptance harness commit
description: Exact Connect top.disk proxy service-job acceptance harness commit
required: true
type: string
@@ -48,8 +48,8 @@ permissions:
jobs:
top-disk:
name: Verify native top.disk service job over mTLS
runs-on: dind-sm-standard-2
name: Verify native top.disk service job through authenticated proxy
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- name: Checkout exact RustFS source
@@ -197,7 +197,7 @@ jobs:
chmod 0755 binary/rustfs
printf '%s binary/rustfs\n' "$BINARY_SHA256" | sha256sum --check --strict
- name: Run the real top.disk service job
- name: Run the real top.disk service job through proxy
shell: bash
env:
SOURCE_SHA: ${{ inputs.source_sha }}
@@ -215,8 +215,8 @@ jobs:
make -C connect-harness e2e-connected-dispatch-check
RUSTFS_BINARY="$GITHUB_WORKSPACE/binary/rustfs" \
RUSTFS_WORKTREE="$GITHUB_WORKSPACE/rustfs-source" \
CONNECT_E2E_TOP_DISK_EVIDENCE="$GITHUB_WORKSPACE/top-disk-service-job-evidence.json" \
make -C connect-harness e2e-connected E2E_SCENARIO=top-disk
CONNECT_E2E_TOP_DISK_PROXY_EVIDENCE="$GITHUB_WORKSPACE/top-disk-proxy-service-job-evidence.json" \
make -C connect-harness e2e-connected E2E_SCENARIO=top-disk-proxy
- name: Bind and validate sanitized evidence
shell: bash
@@ -230,22 +230,36 @@ jobs:
run: |
set -euo pipefail
jq -e --arg source "$SOURCE_SHA" --arg binary "$BINARY_SHA256" --arg artifact "$ARTIFACT_ID" '
.status == "PASS" and .officialArtifactId == $artifact and .producerSource == $source and .producerSha256 == $binary
and .result.provenance.sourceCommit == $source
and .result.provenance.executableSha256 == $binary
' top-disk-service-job-evidence.json >/dev/null
.scenario == "top-disk-proxy" and .topDisk.status == "PASS"
and .topDisk.officialArtifactId == $artifact and .topDisk.producerSource == $source
and .topDisk.producerSha256 == $binary
and .topDisk.result.provenance.sourceCommit == $source
and .topDisk.result.provenance.executableSha256 == $binary
and .topology.agentsInternalOnly == true and .topology.proxyOnlyBridge == true
and .topology.proxyCredentialsFromFiles == true
and .probes.direct.connectStatus == "000"
and .probes.noAuthentication.connectStatus == "407"
and .probes.deniedTarget.connectStatus == "403"
and .probes.wrongCa.connectStatus == "200" and .probes.wrongCa.exitCode == 60
and .probes.approved.connectStatus == "200" and .probes.approved.exitCode == 0
and .proxyLogCounts.approvedTunnels >= 3
and .ingress.jobFetchObserved == true
and .ingress.bundleReservationObserved == true
and .ingress.boundBundleCompletionObserved == true
and .ingress.jobResultObserved == true
' top-disk-proxy-service-job-evidence.json >/dev/null
jq --arg run "$GITHUB_RUN_ID" --arg build "$BUILD_RUN_ID" \
--arg artifact "$ARTIFACT_ID" --arg digest "$ARTIFACT_DIGEST" \
--arg connect "$CONNECT_SHA" --arg source "$SOURCE_SHA" --arg binary "$BINARY_SHA256" \
--arg expiry "$(cat artifact-expires-at)" '
. + {workflowRunId:$run,buildRunId:$build,artifactId:$artifact,artifactDigest:$digest,artifactExpiresAt:$expiry,connectSha:$connect,sourceSha:$source,binarySha256:$binary}
' top-disk-service-job-evidence.json > top-disk-service-job-evidence.bound.json
mv top-disk-service-job-evidence.bound.json top-disk-service-job-evidence.json
' top-disk-proxy-service-job-evidence.json > top-disk-proxy-service-job-evidence.bound.json
mv top-disk-proxy-service-job-evidence.bound.json top-disk-proxy-service-job-evidence.json
- name: Upload only verified sanitized evidence
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: connect-top-disk-service-job-evidence-${{ github.run_id }}
path: top-disk-service-job-evidence.json
name: connect-top-disk-proxy-service-job-evidence-${{ github.run_id }}
path: top-disk-proxy-service-job-evidence.json
retention-days: 14
if-no-files-found: error