Commit Graph

1167 Commits

Author SHA1 Message Date
Jarek Potiuk
8bfe744fe1 CI: Upgrade important CI environment (#58164) 2025-11-10 22:20:26 +01:00
Jarek Potiuk
f4846a8706 The e2e-tests workflows properly use workflow-name to pass name (#58100)
The workflows used `inputs.name` but the passed input was really
the `workflow-name` one.
2025-11-09 14:28:28 +01:00
Jarek Potiuk
189e7ecbf8 Add breeze ci upgrade command to automate CI infrastructure upgrade (#57958)
We have some semi-complex set of tools that take care about upgrading
of all our CI infrastructure periodically. While dependabot has a lot of
use, a lot of cases is not handled yet in it - such as upgrading the
charts, important dependencies in our scripts, dockerfiles and so on.

While we already have a set of prek hooks and github Actions that
do a lot there, some of that has to be done periodically outside of
dependabot - this CI wraps a number of those upgrade tools into a
single `ci upgrade` command that can be run locally, generate and
open PR - and can be used in both - main and any of the v*test
branches.

Future improvement areas:

* docker container upgrades for Helm chart and docker compose
* slack notification after such upgrade PR is opened
* more .....
2025-11-06 19:55:49 +01:00
Jarek Potiuk
bb4f04124a Fix pin-versions prek hook and upgrade hooks (#57857)
We had pin-versions prek-hook implemented in a separate workflow
under the `dev` folder, but it has not been working since workspace
switch because prek workspace only works on sub-folders of where the
.pre-commit-config.yaml file is placed. It was in a separate file
because it needed python 3.11 to run, but it is possible to have
a specific python verison as separate language version in the hook
itself, so we can move it back to the main .pre-commit-config.yaml

This PR:

* moves the pin-version hook to main .pre-commit-config.yaml
* sets python 3.11 as version of python used in the hook independently
  from default python version
* fix github actions and docs to use the hook from the main
  .pre-commit-config.yaml
2025-11-05 23:44:06 +01:00
Jarek Potiuk
7a1631641f Fix start-rc-process command test in CI (#57870) 2025-11-05 16:43:51 +01:00
Gary Hsu
6018768a31 Fix Helm Chart RC Staging Documentation Links (#55677)
* fix Replace Helm Chart RC docs links with staging URLs

Replace production documentation links (airflow.apache.org) with staging links
(airflow.staged.apache.org) for Helm Chart release candidates.
- Add RC version detection (rc, alpha, beta releases)
- Modify prepare-helm-chart-tarball and prepare-helm-chart-package commands
- Implement safe backup/restore for Chart.yaml modifications
- Add --version-suffix option to helm chart package command

* Improve Helm chart RC version handling and testing
- Simplify RC version detection logic
- Add RC version test case to helm-tests.yml workflow
- Update documentation to include --version-suffix parameter usage
2025-11-02 17:42:49 +01:00
Wei Lee
26c93bc52b ci(github-actions): Upgrade uv and ruff versions to fix CI 2025-10-31 11:25:39 +05:30
Jarek Potiuk
941d702c23 Move docker to /mnt for the "Publish docs" workflow (#57371)
When we are publishing docs and building SBOMs the regular disk
space on / is not enough to hold all the necessary images. We need
to move it to /mnt to make it works - /mnt has way more space.
2025-10-27 21:27:54 +01:00
Jarek Potiuk
4219c573a7 Add better platform diagnostics to see which platform is used (#57284)
We now have same workflow running for both ARM and AMD and we need
a bit better diagnostics printed to distinguish those different
run types.

* Tha name of the workflow is just changed to "Tests"
* There is a job added that should immediately show the platform
  in the left-sidebar of GitHub Actions
* The title containing platform is printed at the top of summary
  - before the constraints summary.
2025-10-26 10:22:37 +01:00
GPK
4f3cf811c1 Fix runner type assignment in selective checks (#57254)
* Fix runner type assignment in selective checks

* Update notification workflow
2025-10-25 19:50:30 +01:00
GPK
0ce2f5c866 CI: Fix workflow name (#57246)
* CI: Fix workflow name

* Update status badges
2025-10-25 17:02:38 +02:00
GPK
cf82ae49a7 Make single workflow to run both AMD and ARM builds (#56887)
* Make single workflow to run both AMD and ARM builds

* Add condition to exclude mysql tests for arm

* Fix mypy issues

* delete arm and amd workflows

* Fix artifact name
2025-10-25 11:28:50 +02:00
Ankit Chaurasia
8ecca1dfba Resolves the CI failure in the upgrade-important-versions hook. (#57185)
- Update uv from 0.9.4 to 0.9.5
- Update ruff from 0.14.1 to 0.14.2
- Update mypy to 1.18.2
- Update Python to 3.12.12
- Update various other dependencies
2025-10-24 13:25:59 +05:30
Jarek Potiuk
f8f976dffc Remove MySQL client (#57146)
As discussed in https://lists.apache.org/thread/cwfmqbzxsm0gobtpo8kmfr99nfv29c2y
we are temporarily (or not) removing MySQL client support from Airflow
container images in order to stop our CI canary builds from failing.

If consensus or vote will be reached to remove it, we will leave it as
is, if we will find other ways how to keep mysql client support, we
will revert that change and restore MySQL client support.
2025-10-23 14:07:28 +02:00
Bugra Ozturk
80911e8339 Implement integration test for airflowctl with 3.1 (#56124)
* Implement initial integration test for airflowctl with 3.1

* password can be passed without interaction, update integration tests

* Add AIRFLOW_CLI_DEBUG_MODE for enhanced CLI debugging and update integration tests to skip keyring

* Warn user while running each command if debug mode enabled and explicitly state it shouldn't be used unless debugging or integration tests

* Move python-on-whales to devel-common, use shared docker-composer file, update documentation mistakes

* remove shared python-on-whales from airflow-ctl-tests/

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>

* Decouple docker compose logic from test method to pytest_sessionstart in conftest

* Move python_on_whale import to file level

* Reorder dependencies in pyproject.toml for consistency

* Add workspace to main pyproject.toml, remove unused variable, move console to singleton __init__.py

* Add workspace to main pyproject.toml, remove unused variable, move console to singleton __init__.py

---------

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
2025-10-20 10:44:07 +02:00
Jarek Potiuk
2e78e01248 Properly name the regular/remote leg tests (#56859)
GitHub action uses name derived from the composit workflow not
from running workflow, so we must pass the name of tests down
as input parameter to be able to distinguish the two test types
by name.
2025-10-19 22:38:41 +02:00
Jarek Potiuk
59089cda66 Synchronize and fix ARM CI workflows (#56856)
There were a few issues with ARM workflows:

* not all jobs were run in ARM tests - we do not want to run mysql
  of course, but other tests should be fine to run on ARM
* some conditions were not updated (we have to somehow duplicate
  amd and arm job definition because we run out of composite
  workflows - so sometimes conditions are not synced)
* most importantly - we uploaded prek cache in build-info job, but
  that job only run on AMD, not on ARM so the ARM cache was really
  an AMD one (and it caused unterminated strings in doctoc installation

It's not possible to upload same artifact twice in the same job and
since we use prek in several jobs we should make sure that the cache
is only uploaded once per job. This was the reason why it was initially
uploaded in build-info job (and save-cache was set to false elsewhere).
With this PR, we have save-cache in 3 places:

* basic checks
* static CI-image bound checks
* in octopin (Python 3.11)

Basic checks and static checks are mutually exclusive (controlled by
basic-checks-only flag) - so we can safely upload cache in both.

In all other places we only install prek with cache, but we do not
save the cache as artifact.
2025-10-19 22:02:12 +02:00
Jarek Potiuk
c88f86a229 Add build-info to summarize-warnings prerequisites (#56850)
Accidentally removed when adding test dependencies, but it is
needed - otherwise it ses "runs-on" as empty and makes the
job fail.
2025-10-19 15:55:47 +02:00
Jarek Potiuk
2eb48e23c9 Upgrade uv and remove accidental uv sync (#56834)
Uv upgraded to 0.9.4 and also we remove accidentally added uv sync
2025-10-19 07:42:20 +02:00
Jarek Potiuk
556d179d35 Restore prek cache in a more robust way (#56796)
Apparently the prek cache mechanism has been somewhat broken for a
while - after we split prek to monorepo. The hash files used to
determine prek-cache was different for save and restore step
(the `**/` has been missing in the save cache step. Which means
that we always failed to restore cache and created it from the
scratch.

Also, it seems that the prek cache-when prepared refers to the uv
version that is pre-installed for it in case uv is not installed
in the system. And it refers to the uv version when creating the
virtual environments used by prek, and we first attempted to
install prek and create cache, and only after we installed uv, which
had a side-effect that in some cases the installed venvs referred
to a missing python binary.

Finally - there is a bug in prek https://github.com/j178/prek/issues/918
that pygrep cache contains reference to a non-existing python binary
that should be run when pygrep runs.

Also it's possible that some of the cache installed in workspace by the
github worker remained, and we did not preemptively clean the cache when
we attempted to restore it and failed.

This PR attempts to restore the cache usage in a more robust way:

* fixed cache key on save to save cache with proper name
* added uv version to cache key for prek
* always install uv in desired version before installing prek
* if we faile to cache-hit and restore the cache, we clean-up
  the .cache/prek folder
* we do not look at skipped hooks when installing prek and restoring
  or saving cache. There is very little saving on some hooks and
  since we are preparing the cache in "build-info" now - it's better
  to always use the same cache, no matter if some checks are skipped
* upgraded to prek 0.2.10 that fixed the issue with pygrep cache
2025-10-18 17:47:47 +02:00
Jarek Potiuk
6014289b1c Update all hatch versions in all files (#56784)
Hatch == and >= remained in two places even after upgrading the
important versions. This PR fixes it.

Co-authored-by: GPK <gopidesupavan@gmail.com>
2025-10-18 13:26:46 +02:00
Jarek Potiuk
a7f5337c2a Summarize warnings should run after all tests produced warnings (#56797) 2025-10-18 09:05:47 +02:00
Bugra Ozturk
352392f41e Clean prek cache before running static checks (#56788)
* Update CI image checks to clean cache before running prek

* Add description to change for future investigations
2025-10-18 03:47:49 +02:00
GPK
0f5b91e566 Bump upgrade check versions (#56743) 2025-10-17 10:03:30 +05:30
GPK
af8a4b5457 Free up disk space in k8s tests (#56746) 2025-10-17 09:49:29 +08:00
Jarek Potiuk
f14a880d76 Free disk space for mypy jobs (#56703) 2025-10-16 16:33:20 +08:00
Jarek Potiuk
88175f8365 Add cleanup of free space for provider tests (#56681) 2025-10-15 22:23:27 +02:00
GPK
66d5e72a71 Add e2e test for remote logging (#56191)
* Prefetch remote log connection id for api server in order to read remote logs

* fix docker compose file path

* Fixup tests

* Add test with mock_aws

* Fixup test

* Extend quick start docker with localstack

* remove comment

* add test connection

* fix static checks

* Add only e2e tests for remote logging
2025-10-15 19:09:57 +01:00
Amogh Desai
384d3cadd1 Bump uv to 0.9.2, prek to 0.2.5, golang to 1.25.3 (#56612) 2025-10-14 14:09:14 +02:00
Bugra Ozturk
cea5e32d83 Bump uv version from 0.9.0 to 0.9.1 (#56512) 2025-10-10 01:06:25 +02:00
Amogh Desai
0ec6653d30 Bump uv version to 0.9.0 and ruff to 0.14.0 (#56467) 2025-10-08 13:08:39 +01:00
Amogh Desai
2c62f88e05 Bump uv version to 0.8.24 and prek to 0.2.4 (#56464) 2025-10-07 15:54:39 -07:00
Amogh Desai
1024b65a86 Cleanup disk space in image cache push jobs (#56198) 2025-09-29 16:15:28 +05:30
GPK
3bf81c6251 move disk cleanup to before image build (#56200) 2025-09-29 11:34:25 +01:00
GPK
1764e48e5a add build-info dependency to summarize-warnings github action job (#56117) 2025-09-26 00:11:01 +01:00
GPK
643a1ba292 Make more disk space available in publish docs workflow (#56115) 2025-09-25 23:13:51 +01:00
Ash Berlin-Taylor
e5c7fffe61 Improvements to Go CI pipelines (#56105)
Update gotestsum to latest version, and enable its github-actions output mode
so we get grouping automatically

And most importantly, enable CodeQL scanning on Go
2025-09-25 22:18:32 +01:00
GPK
60c51dbf41 Bump uv and hatch versions (#56032) 2025-09-24 11:09:18 +01:00
Kaxil Naik
e6ebf6d9d6 Bump uv to 0.8.20 (#55978) 2025-09-23 04:39:43 +01:00
Kaxil Naik
77dc1a1b1c Bump uv to 0.8.18 and ruff to 0.13.1 (#55858)
New versions: https://github.com/apache/airflow/actions/runs/17840293464/job/50727976145
2025-09-18 23:46:13 +01:00
Jarek Potiuk
8634ce0d3f Upgrade octopin to bleeding edge (#55653)
Two-space before comment are added in "main" version of octopin, so
we should use --bleeding-edge for octopin.
2025-09-14 23:04:47 +01:00
Jarek Potiuk
d8e2c85592 Separate GoLang precommit after prek supports monorepo setup (#54615)
Prek 0.2.0 supports monorepo setup wieth separate pre-commit files
and as the first step of separation we separate golang pre-commits.
2025-09-14 18:20:58 +02:00
GPK
2c057bd528 CI: Bump zizmor hook (#55618)
* Bump zizmor hook

* Fix zizmor findings

* Fix zizmor findings
2025-09-13 10:40:13 +01:00
GPK
fe2ddb090c Include mypy upgrades to upgrade-important-versions prek hook (#55597) 2025-09-12 23:06:36 +01:00
GPK
165b466890 Update notification workflow to monitor v3-1-test (#55594) 2025-09-12 20:51:34 +01:00
GPK
8eb30c6901 Use quotes to python version in github action env (#55556)
* Use quotes to python version in github action env

* Update .github/workflows/publish-docs-to-s3.yml

Co-authored-by: Ash Berlin-Taylor <ash_github@firemirror.com>

---------

Co-authored-by: Ash Berlin-Taylor <ash_github@firemirror.com>
2025-09-12 09:18:55 +01:00
Jarek Potiuk
d4e92e6bb8 Remove FAB provider from expected providers for PROD image 3.13 verification (#55523)
The #55518 assumed that PYTHON_MAJOR_MINOR_VERSION is set, this one changes it
to use python version retrieved from inside of the image.
2025-09-12 05:52:46 +02:00
GPK
0954496674 Introduce e2e testing with testcontainers (#54072)
* Introduce e2e testing with testcontainers

* Fix test command

* Fix test command

* Upload test report

* Add option to trigger with workflow_dispatch

* Add test to trigger example dags

* Upload logs

* Upload logs

* zip logs

* Fix example_bash_decorator file stat function

* Add breeze commands and docs

* Update breeze commands

* Make docker-image-tag to empty and determine in conftest for canary build

* Fix mnt writable
2025-09-11 20:37:02 +01:00
Wei Lee
68236cc2a6 build: upgrade important version (#55519) 2025-09-12 03:01:12 +08:00
Amogh Desai
897d0bfb26 Add CI job to test airflow standalone startup (#55458) 2025-09-11 12:20:59 -06:00