mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-08 21:25:59 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2139c2f6ca | |||
| a0b7310ece |
@@ -22,7 +22,7 @@ name: Continuous Integration (docs only)
|
|||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [ opened, synchronize, reopened ]
|
types: [ opened, synchronize, reopened ]
|
||||||
branches: [ main ]
|
branches: [ main, release ]
|
||||||
paths:
|
paths:
|
||||||
- "**.md"
|
- "**.md"
|
||||||
- "docs/**"
|
- "docs/**"
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ name: Continuous Integration
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ main ]
|
branches: [ main, release ]
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- "**.md"
|
- "**.md"
|
||||||
- "docs/**"
|
- "docs/**"
|
||||||
@@ -36,7 +36,7 @@ on:
|
|||||||
- "flake.lock"
|
- "flake.lock"
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [ opened, synchronize, reopened, closed ]
|
types: [ opened, synchronize, reopened, closed ]
|
||||||
branches: [ main ]
|
branches: [ main, release ]
|
||||||
# Keep this list in sync with the `paths` list in ci-docs-only.yml, which
|
# Keep this list in sync with the `paths` list in ci-docs-only.yml, which
|
||||||
# reports the required "Test and Lint" check for PRs skipped here.
|
# reports the required "Test and Lint" check for PRs skipped here.
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
@@ -872,13 +872,14 @@ jobs:
|
|||||||
# Merge gate only (backlog#1149 ci-5): the never-automated user-visible
|
# Merge gate only (backlog#1149 ci-5): the never-automated user-visible
|
||||||
# suites — KMS, object_lock, multipart_auth, quota, checksum, encryption,
|
# suites — KMS, object_lock, multipart_auth, quota, checksum, encryption,
|
||||||
# security-boundary, ... — via the e2e-full nextest profile. Too heavy for
|
# security-boundary, ... — via the e2e-full nextest profile. Too heavy for
|
||||||
# every PR, so it is gated to main pushes, the merge queue, and manual
|
# every PR, so it is gated to main/release pushes, the merge queue, and manual
|
||||||
# dispatch. protocols / the 7 cluster suites / replication / #[ignore] are
|
# dispatch. protocols / the 7 cluster suites / replication / #[ignore] are
|
||||||
# owned by other lanes (see .config/nextest.toml profile.e2e-full).
|
# owned by other lanes (see .config/nextest.toml profile.e2e-full).
|
||||||
if: >-
|
if: >-
|
||||||
github.event_name == 'workflow_dispatch' ||
|
github.event_name == 'workflow_dispatch' ||
|
||||||
github.event_name == 'merge_group' ||
|
github.event_name == 'merge_group' ||
|
||||||
(github.event_name == 'push' && github.ref == 'refs/heads/main')
|
(github.event_name == 'push' &&
|
||||||
|
(github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release'))
|
||||||
needs: [ build-rustfs-debug-binary ]
|
needs: [ build-rustfs-debug-binary ]
|
||||||
runs-on: sm-standard-2
|
runs-on: sm-standard-2
|
||||||
timeout-minutes: 55
|
timeout-minutes: 55
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ jobs:
|
|||||||
semver_core='(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)'
|
semver_core='(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)'
|
||||||
prerelease_id='(alpha|beta|rc)\.(0|[1-9][0-9]*)'
|
prerelease_id='(alpha|beta|rc)\.(0|[1-9][0-9]*)'
|
||||||
if [[ -n "$TAG" ]]; then
|
if [[ -n "$TAG" ]]; then
|
||||||
if [[ "$TAG" =~ ^${semver_core}-${prerelease_id}-preview\.(0|[1-9][0-9]*)$ ]]; then
|
if [[ "$TAG" =~ ^${semver_core}(-${prerelease_id})?-preview\.(0|[1-9][0-9]*)$ ]]; then
|
||||||
BUILD_TYPE=preview
|
BUILD_TYPE=preview
|
||||||
elif [[ "$TAG" =~ ^${semver_core}-${prerelease_id}$ ]]; then
|
elif [[ "$TAG" =~ ^${semver_core}-${prerelease_id}$ ]]; then
|
||||||
BUILD_TYPE=prerelease
|
BUILD_TYPE=prerelease
|
||||||
@@ -498,7 +498,7 @@ jobs:
|
|||||||
retention-days: 30
|
retention-days: 30
|
||||||
|
|
||||||
- name: Upload packages to Cloudflare R2
|
- name: Upload packages to Cloudflare R2
|
||||||
if: env.R2_ACCESS_KEY_ID != ''
|
if: env.R2_ACCESS_KEY_ID != '' && needs.resolve.outputs.build_type != 'preview'
|
||||||
env:
|
env:
|
||||||
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
|
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
|
||||||
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
||||||
|
|||||||
@@ -8220,7 +8220,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
mod multipart_transport_tests {
|
mod multipart_transport_tests {
|
||||||
use super::super::super::replication_filemeta_boundary::ObjectPartInfo;
|
use super::super::super::replication_filemeta_boundary::ObjectPartInfo;
|
||||||
use super::super::super::replication_storage_boundary::ObjectIO as _;
|
use super::super::super::replication_storage_boundary::{ObjectIO as _, ReadPlan};
|
||||||
use super::*;
|
use super::*;
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
use http_body_util::{BodyExt, Full};
|
use http_body_util::{BodyExt, Full};
|
||||||
@@ -8264,8 +8264,7 @@ mod tests {
|
|||||||
} else {
|
} else {
|
||||||
self.full_reads.fetch_add(1, Ordering::Relaxed);
|
self.full_reads.fetch_add(1, Ordering::Relaxed);
|
||||||
}
|
}
|
||||||
let plan =
|
let plan = ReadPlan::build_for_request(range, &self.info, opts, &HeaderMap::new(), None).await?;
|
||||||
crate::object_api::ReadPlan::build_for_request(range, &self.info, opts, &HeaderMap::new(), None).await?;
|
|
||||||
let start = plan.storage_offset();
|
let start = plan.storage_offset();
|
||||||
let end = start + usize::try_from(plan.storage_length()).expect("nonnegative storage length");
|
let end = start + usize::try_from(plan.storage_length()).expect("nonnegative storage length");
|
||||||
return plan.into_object_reader(Box::new(std::io::Cursor::new(stored.slice(start..end))), &self.info);
|
return plan.into_object_reader(Box::new(std::io::Cursor::new(stored.slice(start..end))), &self.info);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ pub(crate) use crate::object_api::{
|
|||||||
GetObjectReader, ObjectInfo, ObjectOptions, PutObjReader, ReplicationStatusWritebackCondition, ReplicationStatusWritebackMode,
|
GetObjectReader, ObjectInfo, ObjectOptions, PutObjReader, ReplicationStatusWritebackCondition, ReplicationStatusWritebackMode,
|
||||||
};
|
};
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
pub(crate) use crate::object_api::{NamespaceLockFence, NamespaceLockSignalTestFence};
|
pub(crate) use crate::object_api::{NamespaceLockFence, NamespaceLockSignalTestFence, ReadPlan};
|
||||||
pub(crate) use crate::storage_api_contracts::list::{
|
pub(crate) use crate::storage_api_contracts::list::{
|
||||||
ListOperations, StorageListObjectVersionsInfo, StorageListObjectsV2Info, StorageObjectInfoOrErr, StorageWalkOptions,
|
ListOperations, StorageListObjectVersionsInfo, StorageListObjectsV2Info, StorageObjectInfoOrErr, StorageWalkOptions,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -71,8 +71,8 @@ case "$build_type" in
|
|||||||
;;
|
;;
|
||||||
preview)
|
preview)
|
||||||
[[ -z "$dev_sequence" ]] || fail "preview must not have a development sequence"
|
[[ -z "$dev_sequence" ]] || fail "preview must not have a development sequence"
|
||||||
[[ "$source_version" =~ ^${semver_core}-${prerelease_id}-preview\.(0|[1-9][0-9]*)$ ]] ||
|
[[ "$source_version" =~ ^${semver_core}(-${prerelease_id})?-preview\.(0|[1-9][0-9]*)$ ]] ||
|
||||||
fail "preview version must be strict prerelease-preview SemVer"
|
fail "preview version must be strict stable-preview or prerelease-preview SemVer"
|
||||||
|
|
||||||
deb_version=${source_version/-/$tilde}
|
deb_version=${source_version/-/$tilde}
|
||||||
rpm_version=${source_version//-/_}
|
rpm_version=${source_version//-/_}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ set -euo pipefail
|
|||||||
build_workflow=".github/workflows/build.yml"
|
build_workflow=".github/workflows/build.yml"
|
||||||
docker_workflow=".github/workflows/docker.yml"
|
docker_workflow=".github/workflows/docker.yml"
|
||||||
helm_workflow=".github/workflows/helm-package.yml"
|
helm_workflow=".github/workflows/helm-package.yml"
|
||||||
|
package_workflow=".github/workflows/package.yml"
|
||||||
release_script="scripts/release/create_or_update_release.sh"
|
release_script="scripts/release/create_or_update_release.sh"
|
||||||
|
|
||||||
# shellcheck source=scripts/release/create_or_update_release.sh
|
# shellcheck source=scripts/release/create_or_update_release.sh
|
||||||
@@ -133,6 +134,7 @@ for block in "$tag_branch_tail" "$post_strategy"; do
|
|||||||
done
|
done
|
||||||
require_line "$build_workflow" " if [[ \"\$BUILD_TYPE\" == \"release\" ]] || [[ \"\$BUILD_TYPE\" == \"prerelease\" ]]; then" "latest artifact guard"
|
require_line "$build_workflow" " if [[ \"\$BUILD_TYPE\" == \"release\" ]] || [[ \"\$BUILD_TYPE\" == \"prerelease\" ]]; then" "latest artifact guard"
|
||||||
require_line "$build_workflow" " if: env.R2_ACCESS_KEY_ID != '' && (needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease' || needs.build-check.outputs.build_type == 'development')" "R2 publication guard"
|
require_line "$build_workflow" " if: env.R2_ACCESS_KEY_ID != '' && (needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease' || needs.build-check.outputs.build_type == 'development')" "R2 publication guard"
|
||||||
|
require_line "$package_workflow" " if: env.R2_ACCESS_KEY_ID != '' && needs.resolve.outputs.build_type != 'preview'" "preview packages must not publish to R2"
|
||||||
release_guard="startsWith(github.ref, 'refs/tags/') && (needs.build-check.outputs.build_type == 'preview' || needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease')"
|
release_guard="startsWith(github.ref, 'refs/tags/') && (needs.build-check.outputs.build_type == 'preview' || needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease')"
|
||||||
for job in create-release upload-release-assets publish-release; do
|
for job in create-release upload-release-assets publish-release; do
|
||||||
require_job_if "$build_workflow" "$job" " if: $release_guard"
|
require_job_if "$build_workflow" "$job" " if: $release_guard"
|
||||||
|
|||||||
@@ -85,6 +85,9 @@ run_success rc-amd64 \
|
|||||||
run_success preview-amd64 \
|
run_success preview-amd64 \
|
||||||
$'deb_version=1.0.0~rc.5-preview.2\nrpm_version=1.0.0_rc.5_preview.2\nrpm_release=1\ndeb_file=rustfs_1.0.0~rc.5-preview.2_amd64.deb\nrpm_file=rustfs-1.0.0_rc.5_preview.2-1.x86_64.rpm' \
|
$'deb_version=1.0.0~rc.5-preview.2\nrpm_version=1.0.0_rc.5_preview.2\nrpm_release=1\ndeb_file=rustfs_1.0.0~rc.5-preview.2_amd64.deb\nrpm_file=rustfs-1.0.0_rc.5_preview.2-1.x86_64.rpm' \
|
||||||
preview 1.0.0-rc.5-preview.2 '' amd64 x86_64
|
preview 1.0.0-rc.5-preview.2 '' amd64 x86_64
|
||||||
|
run_success stable-preview-arm64 \
|
||||||
|
$'deb_version=1.0.0~preview.1\nrpm_version=1.0.0_preview.1\nrpm_release=1\ndeb_file=rustfs_1.0.0~preview.1_arm64.deb\nrpm_file=rustfs-1.0.0_preview.1-1.aarch64.rpm' \
|
||||||
|
preview 1.0.0-preview.1 '' arm64 aarch64
|
||||||
run_success development-amd64 \
|
run_success development-amd64 \
|
||||||
"deb_version=0~dev.7463.${sha}
|
"deb_version=0~dev.7463.${sha}
|
||||||
rpm_version=0
|
rpm_version=0
|
||||||
@@ -108,7 +111,9 @@ run_failure release-with-sequence release 1.2.3 1 amd64 x86_64
|
|||||||
run_failure release-prerelease-mismatch release 1.2.3-rc.1 '' amd64 x86_64
|
run_failure release-prerelease-mismatch release 1.2.3-rc.1 '' amd64 x86_64
|
||||||
run_failure prerelease-release-mismatch prerelease 1.2.3 '' amd64 x86_64
|
run_failure prerelease-release-mismatch prerelease 1.2.3 '' amd64 x86_64
|
||||||
run_failure preview-malformed preview 1.2.3-rc.1-preview '' amd64 x86_64
|
run_failure preview-malformed preview 1.2.3-rc.1-preview '' amd64 x86_64
|
||||||
run_failure preview-wrong-shape preview 1.2.3-preview.1 '' amd64 x86_64
|
run_failure preview-wrong-shape preview 1.2.3-dev-preview.1 '' amd64 x86_64
|
||||||
|
run_failure preview-leading-zero preview 1.2.3-preview.01 '' amd64 x86_64
|
||||||
|
run_failure preview-extra-suffix preview 1.2.3-preview.1-extra '' amd64 x86_64
|
||||||
run_failure short-semver release 1.2 '' amd64 x86_64
|
run_failure short-semver release 1.2 '' amd64 x86_64
|
||||||
run_failure leading-v release v1.2.3 '' amd64 x86_64
|
run_failure leading-v release v1.2.3 '' amd64 x86_64
|
||||||
run_failure leading-zero release 01.2.3 '' amd64 x86_64
|
run_failure leading-zero release 01.2.3 '' amd64 x86_64
|
||||||
|
|||||||
Reference in New Issue
Block a user