This updates the job logic so that workflow condition is evaluated
by CircleCI rather than the shell. This also uses the "aws-s3" orb
for uploading to S3 (rather than awscli).
The terraform shipped with snap (in the older version of Ubuntu)
only supported public key encryption with ssh-rsa. New versions
of Linux started deprecating ssh-rsa, so this version bump
is required.
This allows changelogs to be built from "non-release" tags. These
changelogs use "UNRELEASED" as the first section header. Commits
from these sections are eventually rolled into a proper "release"
tag (e.g v2.7.0).
* fix: racing JDBC tests
The JDBC tests have been flaky since adding additional tests. Use
the makefile to build the client to avoid the clients racing.
* chore: pre-download JDBC drive in integration test
* fix: remove stray lockfile
* chore: Run end to end integration tests as part of a separate circle CI Job
* fix: but
* feat: update job name
* chore: Update resources
---------
Co-authored-by: Dom <dom@itsallbroken.com>
* chore: streamline CD
Use our own CI image for CD and avoid installing skopeo every time. Also
streamline the script a bit to make it more readable and less prone to
errors/typos.
This should hopefully safe a good amount of CD time.
Also see https://github.com/influxdata/idpe/issues/17098 .
* chore: remote docker no longer required for CD
* chore: gate deploy on Flight SQL integration tests
* chore: use more CPUs to build release image
* fix: `skopeo` login permissions
This reverts commit d6265c988f.
It seems that Debian's skopeo is so horribly old or the packaging is so
broken that you cannot run it out of the box as a normal non-root user.
I need to fix the CI first before we can try again.
Use our own CI image for CD and avoid installing skopeo every time. Also
streamline the script a bit to make it more readable and less prone to
errors/typos.
This should hopefully safe a good amount of CD time.
Also see https://github.com/influxdata/idpe/issues/17098 .
This is only needed until we switch over to ingester2 completely.
Old ingester tests need to be run on non-shared servers because I'm
unable to implement persistence per-namespace. Rather than spending time
figuring that out, limit the parallelization to limit the Postgres
connections that CI uses at one time.
Temporary fix as there's no official 1.66.1 docker image (yet?), so use
1.66 for now.
I kept the toolchain version pinned and switched only the CI version so
that we are all using the fixed cargo. I will revert this commit when
there's a 1.66.1 image.
* chore: remove unused build/ci scripts
* feat: validate packages during build
* chore: test CentOS aarch64 package
* fix: remove x86_64 from parameterized workflow
* fix: don't upgrade packages
Since some unrelated packages break during upgrade, this
no longer upgrades the system before installing
influxdb.
* chore: temporarily disable circle filter to build & push PRs
* chore: allow build & push of container image for branches using param
* chore: indentation fix in circle config
* chore: rename build_perf to release_branch
* chore: add protoc-gen script to releng
* chore: break cross-container-tag into separate variable
* fix: call GNUMakefile "generate-sources" target instead
This also does a better job at mounting the root directory
in the docker container.
* ci: use same feature set in `build_dev` and `build_release`
* ci: also enable unstable tokio for `build_dev`
* chore: update tokio to 1.21 (to fix console-subscriber 0.1.8
* fix: "must use"
* chore: fix build commands for new cross-builder
* fix: use xcc to determine compiler
* fix: use correct compiler for darwin tests
* fix: update perftest to 22.04 image
The Influx deployment pipeline was changed so the an image push is used
as a signal for deployment (instead of a magic script that was used
before). So we need to adopt our CI to only push images when all tests
pass.
Old workflow:
- build release: builds docker images and push commit-based tags to
registry
- deploy release: pulls built images from registry, adds+pushes branch
tags, calls magic deploy script
New workflow:
- build release: builds docker image, saves them to disk
- deploy release: load image files, tags them, pushes tags
You may wonder why there are two steps if we could just use a single
one. The reason is: time-to-deploy. We can already build the image while we
are waiting for the tests. If the tests fail, the image will just not be
published.
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* ci: fix cargo deny
* chore: downgrade `socket2`, version 0.4.5 was yanked
* chore: rename `query` to `iox_query`
`query` is already taken on crates.io and yanked and I am getting tired
of working around that.
* feat: Increase logging to investigate multi ingester flaky test
* feat: Temporarily disable a test while logging is increased in CI
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Configures the release CI pipeline to generate a binary with
tokio-console support.
This drops the compile-time log filter to TRACE, which may have some
minor overhead. All our log filters in prod are debug or higher, so the
runtime filter will remove the TRACE events and no additional logs will
be emitted because of this change.
This commit unifies RUSTFLAGS config in the CircleCI config.
Previously in the CircleCI config file for the "build_release" job, we
specify an env var (RUSTFLAGS) in the env config section, but then
override / use a different value when passing flags to the docker build
steps.
Use cargo-deny in CI instead of cargo-audit.
Does the same job, but cargo-deny has more features, in particular the
"deny" functionality is helpful to prevent accidentally pulling in
dependencies we don't want (I'm looking at you OpenSSL).