* 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: 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
* 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"
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.