Skip to content

feat: migrate Paimon C++ 0.3 development history #8

feat: migrate Paimon C++ 0.3 development history

feat: migrate Paimon C++ 0.3 development history #8

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Release Candidate
on:
pull_request:
paths:
- ".github/workflows/release_candidate.yaml"
- ".github/.rat-excludes"
- "CMakeLists.txt"
- "LICENSE"
- "NOTICE"
- "docs/source/conf.py"
- "docs/source/_static/versions.json"
- "scripts/releasing/**"
push:
tags:
- "v*-rc*"
concurrency:
group: ${{ github.repository }}-${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
permissions:
contents: read
jobs:
archive:
name: Create and audit source archive
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- name: Checkout source
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Run release tool tests
run: python3 -m unittest discover -s scripts/releasing/tests -v
- name: Resolve release version
shell: bash
run: |
version=$(
awk '$1 == "VERSION" && $2 ~ /^[0-9]+\.[0-9]+\.[0-9]+$/ {
print $2
exit
}' CMakeLists.txt
)
if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
tag_version=${GITHUB_REF_NAME#v}
tag_version=${tag_version%-rc*}
[[ "${tag_version}" == "${version}" ]]
fi
scripts/releasing/bump_version.py --check "${version}"
echo "RELEASE_VERSION=${version}" >> "${GITHUB_ENV}"
- name: Create source archive
run: |
scripts/releasing/create_source_release.sh \
--version "${RELEASE_VERSION}" \
--git-ref HEAD \
--output-dir release/ci
- name: Audit source archive
run: |
scripts/releasing/verify_release_candidate.sh \
--allow-unsigned \
--skip-build \
"release/ci/apache-paimon-cpp-${RELEASE_VERSION}-src.tgz"
- name: Upload source archive
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: source-archive
path: release/ci/
if-no-files-found: error
verify:
name: Verify source archive (${{ matrix.compiler }})
if: github.ref_type == 'tag'
needs: archive
runs-on: ubuntu-24.04
timeout-minutes: 180
strategy:
fail-fast: false
matrix:
compiler:
- gcc-14
- clang
include:
- compiler: gcc-14
cc: gcc-14
cxx: g++-14
- compiler: clang
cc: clang
cxx: clang++
steps:
- name: Checkout source
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Download source archive
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: source-archive
path: release/ci
- name: Verify, build, test, and install
shell: bash
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
run: |
artifact=$(find release/ci -name 'apache-paimon-cpp-*-src.tgz' -print -quit)
scripts/releasing/verify_release_candidate.sh \
--allow-unsigned \
--skip-rat \
"${artifact}"