Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,27 @@ any_filter: &any_filter
branches:
only: /.*/

# This regex is used to trigger 'release builds' based on tags. For semver,
Comment thread
praveen-influx marked this conversation as resolved.
# package upgrades, etc, the tags must conform to specific schema. Eg:
#
# - v3.0.0-0.alpha.1 (1st alpha release)
# - v3.0.0-0.alpha.1.1 (2nd build of 1st alpha release; ie, no code changes)
# - v3.0.0-0.alpha.2 (2nd alpha release)
# - v3.0.0-0.beta.1 (1st beta release)
# - v3.0.0-0.rc.1 (1st rc release)
# - v3.0.0 (3.0.0 official release)
# - v3.0.0-2 (2nd build of 3.0.0 official release; ie, no code changes)
# - v3.0.1 (3.0.1 official release)
# - v3.1.0 (3.1.0 official release)
#
# If the tag does not conform to the above, then ci-support/ci-packager-next,
# will generate snapshat versions. For easier maintenance, this regex is more
# open than ci-support/ci-packager-next (which enforces a number of
# constraints). See .circleci/packages/config.yaml for details.
release_filter: &release_filter
filters:
tags:
only: /^v(\d+)(?:\.(\d+))?(?:\.(\d+))?$/
only: /^v[0-9]+\.[0-9]+\.[0-9]+(-[0-9]+(\.(alpha|beta|rc)\.[0-9]+(\.[0-9]+)?)?)?$/
branches:
ignore: /.*/

Expand Down Expand Up @@ -287,7 +304,7 @@ jobs:
# Build a dev binary with the default cargo profile
build-dev:
docker:
- image: us-east1-docker.pkg.dev/influxdata-team-edge/ci-support/ci-cross-influxdb3@sha256:1f41029cb68a723c3b559a44bcf91e04b6a71b631b0886185562f4a90e1460ba
- image: us-east1-docker.pkg.dev/influxdata-team-edge/ci-support/ci-cross-influxdb3@sha256:e34ee8aafbc3b3bc9ddbe57eda2580a0263597160d766c86dc02ce038fba8300
auth:
username: _json_key
password: $CISUPPORT_GCS_AUTHORIZATION
Expand Down Expand Up @@ -350,7 +367,7 @@ jobs:
# Compile cargo "release" profile binaries for influxdb3 edge releases
build-release:
docker:
- image: us-east1-docker.pkg.dev/influxdata-team-edge/ci-support/ci-cross-influxdb3@sha256:1f41029cb68a723c3b559a44bcf91e04b6a71b631b0886185562f4a90e1460ba
- image: us-east1-docker.pkg.dev/influxdata-team-edge/ci-support/ci-cross-influxdb3@sha256:e34ee8aafbc3b3bc9ddbe57eda2580a0263597160d766c86dc02ce038fba8300
auth:
username: _json_key
password: $CISUPPORT_GCS_AUTHORIZATION
Expand Down Expand Up @@ -437,7 +454,7 @@ jobs:

build-packages:
docker:
- image: us-east1-docker.pkg.dev/influxdata-team-edge/ci-support/ci-packager-next@sha256:db0cd91a5445c4287154cea1d4d5566735cb0d3b7b9e2a95724a83f9d979d497
- image: us-east1-docker.pkg.dev/influxdata-team-edge/ci-support/ci-packager-next@sha256:57495019df2dcb3c008987dabafb5566618ba5ab032857ddb2d0c04fb68fc019
auth:
username: _json_key
password: $CISUPPORT_GCS_AUTHORIZATION
Expand Down
70 changes: 69 additions & 1 deletion .circleci/packages/config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,73 @@
# https://github.com/influxdata/ci-support/blob/main/ci-packager-next/fs/usr/bin/packager
# uses this to calculate the version used for tarball, zip and Linux package
# versions and git tags for this repo (https://github.com/influxdata/influxdb)
# are used by .circleci/config.yml's 'release_filter' to determine which CI
# jobs to run. Be default, packager will set the version to
# 3.0.0+snapshot-<git sha> based on CIRCLE_SHA1. If CIRCLE_TAG matches one of
# these, then packager will set the version based on the tag:
#
# | tag | filename | deb | rpm |
# |--------------------|-------------------|-------------------| -------------------------- |
# | v3.0.0-0.alpha.1 | 3.0.0-0.alpha.1 | 3.0.0-0.alpha.1 | ver=3.0.0, rel=0.alpha.1 |
# | v3.0.0-0.alpha.1.1 | 3.0.0-0.alpha.1.1 | 3.0.0-0.alpha.1.1 | ver=3.0.0, rel=0.alpha.1.1 |
# | v3.0.0-0.alpha.2 | 3.0.0-0.alpha.2 | 3.0.0-0.alpha.2 | ver=3.0.0, rel=0.alpha.2 |
# | v3.0.0-0.beta.1 | 3.0.0-0.beta.1 | 3.0.0-0.beta.1 | ver=3.0.0, rel=0.beta.1 |
# | v3.0.0-0.beta.1.1 | 3.0.0-0.beta.1.1 | 3.0.0-0.beta.1.1 | ver=3.0.0, rel=0.beta.1.1 |
# | v3.0.0-0.beta.2 | 3.0.0-0.beta.2 | 3.0.0-0.beta.2 | ver=3.0.0, rel=0.beta.2 |
# | v3.0.0-0.rc.1 | 3.0.0-0.rc.1 | 3.0.0-0.rc.1 | ver=3.0.0, rel=0.rc.1 |
# | v3.0.0 | 3.0.0 | 3.0.0-1 | ver=3.0.0, rel=1 |
# | v3.0.0-2 | 3.0.0-2 | 3.0.0-2 | ver=3.0.0, rel=2 |
#
# In this manner:
# - v3.0.0-0.alpha.1 < v3.0.0-0.alpha.1.1
# - v3.0.0-0.alpha.1.1 < v3.0.0-0.alpha.2
# - v3.0.0-0.alpha.2 < v3.0.0-0.beta.1
# - v3.0.0-0.beta.1 < v3.0.0-0.beta.1.1
# - v3.0.0-0.beta.1.1 < v3.0.0-0.beta.2
# - v3.0.0-0.beta.2 < v3.0.0-0.rc.1
# - v3.0.0-0.rc.1 < v3.0.0
# - v3.0.0 < v3.0.0-2
#
# (use 'dpkg --compare-versions X lt Y && echo yes' for debs and
# 'rpmdev-vercmp X Y | grep " < " && echo yes' for rpms)
#
# We use the following tag schema that supports semver as well as Linux package
# version semantics (see https://github.com/influxdata/influxdb/pull/24751 for
# context):
#
# v3.M.m[-B[.Q.q.b]] # eg, v3.0.0, v3.0.0-2, v3.0.0-0.beta.1 or v3.0.0-0.beta.1.1
# | | | | | | |
# | | | | | | ----------> quality release package build number
# | | | | | ------------> quality release number
# | | | | --------------> release quality
# | | | -----------------> package build number
# | | --------------------> influxdb3 micro version
# | ----------------------> influxdb3 minor version
# ------------------------> major version
#
# Importantly:
# - the tag should start with 'v' (for semver tagging convention)
# - changes in v3.M.m follow semver and indicate there are code changes
# - '-B' should be omitted for a new v3.M.n released semver (eg, v3.0.0, not
# v3.0.0-1); specified starting with '2' for new package builds for this
# release semver (eg, v3.0.0-2, v3.0.0-3, etc); and specified with '0' for
# pre-release quality builds (eg, v3.0.0-0.rc.1).
# - 'Q' is optional but when specified, 'Q' may be one of 'alpha', 'beta' or
# 'rc'. Furthermore, when 'Q' is set:
# - 'B' and 'q' must also be specified with 'q' starting at '1' (eg,
# v3.0.0-0.alpha.1, v3.0.0-0.alpha.2, etc)
# - 'b' may also be specified with 'Q' and when specified, should start with
# '1' (eg, v3.0.0-0.alpha.1.1, v3.0.0-0.alpha.1.2, etc)
# - changes to 'M', 'm', 'Q' and 'q' indicate influxdb code changes compared to
# prior tags, while 'B' and 'b' indicate only packaging changes.
#
# By following these rules, packager should set package versions that are
# upgradable (eg, in package repositories).
#
# The CIRCLE_TAG regex enforces these rules, falling back to
# 3.0.0+snapshot-<git hash> if it doesn't match.
version:
- match: '^v[0-9]+.[0-9]+.[0-9]+(-[0-9]+.(alpha|beta|rc).[0-9]+(.[0-9]+)?)?$'
- match: '^v[0-9]+\.[0-9]+\.[0-9]+(-([2-9]|[1-9][0-9]+|0\.(alpha|beta|rc)\.[1-9][0-9]*(\.[1-9][0-9]*)?))?$'
value: '{{env.CIRCLE_TAG[1:]}}'
- match: '.*'
value: '3.0.0+snapshot-{{env.CIRCLE_SHA1[:8]}}'
Expand Down