Commit 43b5bb28 authored by Konstantinos Togias's avatar Konstantinos Togias
Browse files

release: prepare 2.0.0rc1 with protected manual artifact promotion

parent f748ba8d
Loading
Loading
Loading
Loading
Loading
+29 −1
Changes for .gitlab-ci.yml: 29 added lines, 1 removed line.
Original line number Diff line number Diff line
workflow:
  rules:
  - if: $CI_PIPELINE_SOURCE == "merge_request_event"
  - if: $CI_COMMIT_TAG =~ /^v2\.0\.[0-9]+(rc[1-9][0-9]*)?$/
  - if: $CI_COMMIT_TAG =~ /^v2[.]0[.][0-9]+(rc[1-9][0-9]*)?$/
  - if: $CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "develop")
  - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
    when: never
@@ -21,6 +21,7 @@ default:
  timeout: 15 minutes
  before_script:
  - mkdir -p "$TMPDIR" "$PIP_CACHE_DIR"
  - apt-get update -qq && apt-get install -y --no-install-recommends git ca-certificates
  - python --version
  - python -m pip install --require-hashes -r ci/requirements.lock
  cache:
@@ -155,3 +156,30 @@ python-compatibility:
    paths:
    - .cache/ci/environment.json
    expire_in: 90 days

publish-package:
  stage: publish
  interruptible: false
  resource_group: sdk-package-publication
  needs:
    - job: build-package
      artifacts: true
    - job: wheel-tests
    - job: sdist-check
    - job: chart-check
    - job: public-contract-types
    - job: dependency-audit
    - job: python-compatibility
  rules:
    - if: '$CI_COMMIT_TAG =~ /^v2[.]0[.][0-9]+(rc[1-9][0-9]*)?$/ && $CI_COMMIT_REF_PROTECTED == "true"'
      when: manual
      allow_failure: false
    - when: never
  script:
    - python ci/release.py publish
  artifacts:
    when: always
    paths:
      - .cache/ci/release-check.json
      - .cache/ci/manifest.json
    expire_in: never
+6 −0
Changes for ci/README.md: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -26,3 +26,9 @@ Source, sdist and wheel are checked before publication. Branch pushes cannot
publish packages. Release promotion must reuse the built and tested bytes;
never rebuild a package under an existing version. Final release qualification
must identify the exact SDK wheel, SRM revision and OEG-driven acceptance run.

The candidate version is 2.0.0rc1. A maintainer creates a protected matching
release tag only when the intended candidate is ready. Publication remains a
blocking manual job, uses CI_JOB_TOKEN, checks tag/version/source and artifact
checksums, and retains a permanent release receipt. No branch pipeline uploads.
Final 2.0.0 additionally needs exact-wheel SRM and live E2E qualification.
+7 −1
Changes for ci/verify.py: 7 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -66,7 +66,13 @@ def artifact_manifest():
        "artifacts": [{"name": p.name, "sha256": sha256(p)} for p in paths],
    }
    write_json(OUT / "manifest.json", result)
    (OUT / "build.env").write_text(f"SDK_BUILD_JOB_ID={os.getenv('CI_JOB_ID', '')}\n")
    wheel = next(DIST.glob("*.whl"))
    (OUT / "build.env").write_text(
        f"SDK_BUILD_JOB_ID={os.getenv('CI_JOB_ID', '')}\n"
        f"SDK_SOURCE_SHA={result['source_sha']}\n"
        f"SDK_WHEEL_NAME={wheel.name}\n"
        f"SDK_WHEEL_SHA256={sha256(wheel)}\n"
    )
    return result


+1 −1
Changes for pyproject.toml: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "openop-tfsdk"
version = "1.1.1"
version = "2.0.0rc1"
description = "Open source SDK to abstract CAMARA/GSMA Transformation Functions (TFs) for Edge Cloud platforms, 5G network cores and Open RAN solutions."
keywords = [
  "Federation",