This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-site.git
The following commit(s) were added to refs/heads/main by this push:
new 79971ffd80 Modernize GH action environment setup (#1195)
79971ffd80 is described below
commit 79971ffd80984a6887e34463e455da95f5b14349
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sun May 11 16:10:00 2025 +0200
Modernize GH action environment setup (#1195)
---
...{print_df.sh => dump-docs-packages-metadata.py} | 28 +++++++++---------
.github/scripts/refresh_pmc_committer_images.py | 8 +++++
.github/workflows/build.yml | 34 ++++------------------
.gitignore | 1 +
.pre-commit-config.yaml | 20 +++++++------
dump-docs-packages-metadata.py | 10 -------
requirements.txt | 4 ---
site.sh | 4 +--
sphinx_airflow_theme/demo/docs.sh | 2 +-
9 files changed, 44 insertions(+), 67 deletions(-)
diff --git a/.github/scripts/print_df.sh
b/.github/scripts/dump-docs-packages-metadata.py
similarity index 61%
rename from .github/scripts/print_df.sh
rename to .github/scripts/dump-docs-packages-metadata.py
index 4b13f1fe1f..13f4b71db6 100755
--- a/.github/scripts/print_df.sh
+++ b/.github/scripts/dump-docs-packages-metadata.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env bash
-
+#!/usr/bin/env python
# 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
@@ -16,17 +15,20 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
+# PEP 723 compliant inline script metadata
+# /// script
+# requires-python = ">=3.9"
+# dependencies = [
+# "requests>=2.32.2",
+# ]
+# ///
+
+import sys
+import requests
-# Create an expandable group in the logs for the disk free (df -h) bash
command output using the syntax defined for
-# GiHub Action runners:
-#
https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#grouping-log-lines.
-# With such expandable logs groupings we can avoid noisy outputs and at the
same time have pointers for
-# debugging/analysis.
-function group_df_logs {
- echo "::group::df -h"
- df -h
- echo "::endgroup::"
-}
+resp =
requests.get("https://live-docs-airflow-apache-org.s3.us-east-2.amazonaws.com/manifest/packages-metadata.json")
+if resp.status_code != 200:
+ raise RuntimeError(f"Failed to fetch metadata: {resp.status_code} -
{resp.text}")
-group_df_logs
+sys.stdout.write(resp.text)
diff --git a/.github/scripts/refresh_pmc_committer_images.py
b/.github/scripts/refresh_pmc_committer_images.py
index d53b965067..a4df19f5b0 100644
--- a/.github/scripts/refresh_pmc_committer_images.py
+++ b/.github/scripts/refresh_pmc_committer_images.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
# 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
@@ -14,6 +15,13 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
+# PEP 723 compliant inline script metadata
+# /// script
+# requires-python = ">=3.9"
+# dependencies = [
+# "requests>=2.32.2",
+# ]
+# ///
import os
import requests
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4b63f1c91d..4309ff61a1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -59,10 +59,6 @@ jobs:
- name: Set working directory to /mnt/airflow-site
working-directory: /mnt/airflow-site
run: echo "Working directory set to /mnt/airflow-site"
-
- - name: Display disk free
- run: /mnt/airflow-site/.github/scripts/print_df.sh
- working-directory: /mnt/airflow-site
- name: π Setup Python
uses: actions/setup-python@bd6b4b6205c4dbad673328db7b31b7fab9e241c0 #
v4.6.1
with:
@@ -79,20 +75,17 @@ jobs:
- name: π’ Install node dependencies
run: |
/mnt/airflow-site/site.sh install-node-deps
- /mnt/airflow-site/.github/scripts/print_df.sh
- - name: π Install Python dependencies
+ - name: π Install uv
run: |
- pip install -r requirements.txt
- /mnt/airflow-site/.github/scripts/print_df.sh
+ curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Ensure cache directory exists and adjust permissions
run: |
mkdir -p /mnt/airflow-site/.cache/pre-commit
sudo chmod -R 777 /mnt/airflow-site/.cache/pre-commit
- name: π Lint
run: |
- pip install pre-commit
- pip install pre-commit-uv
- pre-commit run --all-files
+ uv tool install pre-commit --with pre-commit-uv
+ pre-commit run --all-files --color always
- name: π Checkout publish branch with minimum depth
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 #
3.5.3
if: github.event_name == 'push' || github.event_name ==
'workflow_dispatch'
@@ -103,8 +96,6 @@ jobs:
- name: π§ Build site
run: |
/mnt/airflow-site/site.sh build-site
- /mnt/airflow-site/.github/scripts/print_df.sh
-
- name: Install AWS CLI v2
if: github.event_name == 'push' || github.event_name ==
'workflow_dispatch'
run: |
@@ -113,7 +104,6 @@ jobs:
rm /tmp/awscliv2.zip
sudo /tmp/aws/install --update
rm -rf /tmp/aws/
-
- name: Configure AWS credentials
if: github.event_name == 'push' || github.event_name ==
'workflow_dispatch'
uses:
aws-actions/configure-aws-credentials@010d0da01d0b5a38af31e9c3470dbfdabdecca3a
# v4.0.1
@@ -135,7 +125,6 @@ jobs:
echo "These files have been deleted to optimize the size of the
artifacts." > ./dist/docs/index.html
echo "Here was the contents of the ./docs-archive directory" >>
./dist/docs/index.html
find ./dist/
- /mnt/airflow-site/.github/scripts/print_df.sh
- uses: actions/upload-artifact@v4
name: π Upload website as artifact
if: ${{ github.event_name == 'pull_request' }}
@@ -150,33 +139,27 @@ jobs:
# The asf.yaml file must be in the branch from which the files are
published.
# Otherwise, ASF publising tools cannot detect it.
cp .asf.yaml ./dist/
- /mnt/airflow-site/.github/scripts/print_df.sh
- name: πͺ Remove node and node modules
run: |
rm -rf node_modules
sudo rm -rf "$AGENT_TOOLSDIRECTORY/node"
- /mnt/airflow-site/.github/scripts/print_df.sh
- name: πRefresh PMC/COMMITTERS profiles
env:
PMC_COMMITTERS_FILES:
landing-pages/site/data/committers.json,landing-pages/site/data/pmc.json
run: |
- python3 ./.github/scripts/refresh_pmc_committer_images.py
+ uv run ./.github/scripts/refresh_pmc_committer_images.py
- name: π Add commit to publish branch and deploy it
if: github.event_name == 'push' || github.event_name ==
'workflow_dispatch'
working-directory: dist
run: |
- ../.github/scripts/print_df.sh
echo "Running git config"
git config user.name "GitHub Actions"
git config user.email "[email protected]"
echo "Running git add"
git add .
- ../.github/scripts/print_df.sh
echo "Running git commit"
git commit --no-edit -m "Docs updated via ${{ github.ref }}:${{
github.sha }}" > ../git_commit.log
- ../.github/scripts/print_df.sh
git push origin publish
- ../.github/scripts/print_df.sh
- name: π Upload git commit log as artifacts
uses: actions/upload-artifact@v4
with:
@@ -186,13 +169,10 @@ jobs:
- name: π§ Copy files from site to theme
run: |
./site.sh prepare-theme
- ./.github/scripts/print_df.sh
- name: π§ Prepare sphinx_airflow_theme package οΈ
working-directory: sphinx_airflow_theme
run: |
- python3 -m pip install --user --upgrade setuptools wheel
- python3 setup.py sdist bdist_wheel
- ../.github/scripts/print_df.sh
+ uv build
- name: π Upload sphinx_airflow_theme package as artifact
uses: actions/upload-artifact@v4
with:
@@ -206,7 +186,6 @@ jobs:
pip install ./dist/sphinx_airflow_theme-*.whl
cd demo
./docs.sh build
- ../../.github/scripts/print_df.sh
- name: π Upload sphinx_airflow_theme demo as artifact
uses: actions/upload-artifact@v4
with:
@@ -236,4 +215,3 @@ jobs:
--title "${TITLE}" \
--notes "${NOTES}" \
./dist/*
- ../.github/scripts/print_df.sh
diff --git a/.gitignore b/.gitignore
index 0844d03de9..c3e1f96032 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,4 +25,5 @@ sphinx_airflow_theme/sphinx_airflow_theme/static/_gen/
sphinx_airflow_theme/demo/_doctrees/
docs-archive/**/output-*.log
*.log
+*.iml
.venv/
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 9e6b8e56de..04f2b8c5b6 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -15,10 +15,11 @@
# specific language governing permissions and limitations
# under the License.
---
-default_stages: [commit, push]
+default_stages: [pre-commit, pre-push]
default_language_version:
# force all unspecified python hooks to run python3
python: python3
+ node: "16.20.2"
exclude:
^(docs-archive|landing-pages/site/static/external|landing-pages/site/layouts/partials/scripts.html|landing-pages/site/assets/scss/_variables.scss)
repos:
@@ -123,23 +124,25 @@ repos:
types: [shell]
files: ^breeze$|^breeze-complete$|\.sh$|^hooks/build$|^hooks/push$
- id: lint-dockerfile
- name: Lint dockerfile
- language: docker_image
- types:
- - dockerfile
- entry: --entrypoint /bin/hadolint hadolint/hadolint:latest -
+ name: Lint Dockerfile
+ language: system
+ entry: bash -c "docker run --rm hadolint/hadolint:latest <Dockerfile"
- id: lint-css
name: Lint CSS files
entry: ./site.sh lint-css
- language: system
+ language: node
files: \.scss$
exclude: _roadmap.scss$|_rst-content.scss$
+ additional_dependencies:
+ - yarn
- id: lint-js
name: Lint JS files
entry: ./site.sh lint-js
- language: system
+ language: node
files: \.js$
exclude: ^sphinx_airflow_theme/
+ additional_dependencies:
+ - yarn
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
@@ -156,6 +159,5 @@ repos:
- --autofix
-
--top-keys=name,version,description,repository,main,author,license,scripts
- id: mixed-line-ending
- - id: requirements-txt-fixer
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
diff --git a/dump-docs-packages-metadata.py b/dump-docs-packages-metadata.py
deleted file mode 100755
index 43587745be..0000000000
--- a/dump-docs-packages-metadata.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-import sys
-
-import requests
-
-resp =
requests.get("https://live-docs-airflow-apache-org.s3.us-east-2.amazonaws.com/manifest/packages-metadata.json")
-if resp.status_code != 200:
- raise RuntimeError(f"Failed to fetch metadata: {resp.status_code} -
{resp.text}")
-
-sys.stdout.write(resp.text)
diff --git a/requirements.txt b/requirements.txt
deleted file mode 100644
index 91055c6f00..0000000000
--- a/requirements.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-pre-commit==2.20.0
-PyYAML==6.0
-requests==2.32.2
-semver==2.13.0
diff --git a/site.sh b/site.sh
index 7ea1d7d718..2bc27c6e43 100755
--- a/site.sh
+++ b/site.sh
@@ -127,7 +127,7 @@ function run_lint {
function prepare_packages_metadata {
log "Preparing packages-metadata.json"
- "${MY_DIR}"/dump-docs-packages-metadata.py >
"${MY_DIR}/landing-pages/site/static/_gen/packages-metadata.json"
+ uv run "${MY_DIR}"/.github/scripts/dump-docs-packages-metadata.py >
"${MY_DIR}/landing-pages/site/static/_gen/packages-metadata.json"
}
function build_landing_pages {
@@ -171,7 +171,7 @@ function build_site {
# This file may already have been created during building landing pages,
# but when building a full site, it's worth regenerate
log "Preparing packages-metadata.json"
- "${MY_DIR}"/dump-docs-packages-metadata.py >
"${MY_DIR}/dist/_gen/packages-metadata.json"
+ uv run "${MY_DIR}"/.github/scripts/dump-docs-packages-metadata.py >
"${MY_DIR}/dist/_gen/packages-metadata.json"
# Sanity checks
assert_file_exists "${MY_DIR}"/dist/docs/index.html
diff --git a/sphinx_airflow_theme/demo/docs.sh
b/sphinx_airflow_theme/demo/docs.sh
index c1024f39af..37d5cc533a 100755
--- a/sphinx_airflow_theme/demo/docs.sh
+++ b/sphinx_airflow_theme/demo/docs.sh
@@ -80,7 +80,7 @@ if [[ "${CMD}" == "build" ]] ; then
rm -rf _build
build_sphinx_demo
mkdir -p _build/_gen/
- (cd ../../; python dump-docs-packages-metadata.py >
"${BUILD_DIR}/_gen/packages-metadata.json")
+ (cd ../../; uv run .github/scripts/dump-docs-packages-metadata.py >
"${BUILD_DIR}/_gen/packages-metadata.json")
exit 0
elif [[ "${CMD}" == "preview" ]] ; then
start_preview