Skip to content

Bump idna from 3.7 to 3.8 #573

Bump idna from 3.7 to 3.8

Bump idna from 3.7 to 3.8 #573

Workflow file for this run

---
# MegaLinter GitHub Action configuration file
# More info at https://megalinter.io
name: MegaLinter
permissions:
checks: write
pull-requests: write
contents: write
on: # yamllint disable-line rule:truthy
# Trigger mega-linter at every push. Action will also be visible from Pull Requests to main
push:
branches:
- main
pull_request:
branches:
- main
env: # Comment env block if you do not want to apply fixes
# Apply linter fixes configuration
APPLY_FIXES: all # When active, APPLY_FIXES must also be defined as environment variable (in github/workflows/mega-linter.yml or other CI tool)
APPLY_FIXES_EVENT: push # Decide which event triggers application of fixes in a commit or a PR (pull_request, push, all)
# I tried around a lot to make the test workflow run on pull_request events,
# but it it only worked when creating a new PR. By default, this would target the branch of the PR
# and not the main branch. Instead of trying around to cherry-pick the commits from the PR
# etc. I decided to just run the workflow on push events to the main branch and then create
# a PR targeting the main branch.
APPLY_FIXES_MODE: pull_request # If APPLY_FIXES is used, defines if the fixes are directly committed (commit) or posted in a PR (pull_request)
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
build:
name: MegaLinter
runs-on: ubuntu-latest
permissions:
# Give the default GITHUB_TOKEN write permission to commit and push, comment issues & post new PR
# Remove the ones you do not need
contents: write
issues: write
pull-requests: write
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
fetch-depth: 0
- name: Create alpine-wheels folder
run: mkdir alpine-wheels
- name: Cache wheel directory
id: cache-wheels
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/alpine-wheels
key: ${{ runner.os }}-alpine-wheels-${{ hashFiles('requirements-dev.txt') }}
restore-keys: |
${{ runner.os }}-alpine-wheels-${{ hashFiles('requirements-dev.txt') }}
- name: Set up Alpine Linux
if: steps.cache-wheels.outputs.cache-hit != 'true'
uses: jirutka/setup-alpine@v1
with: # cfitsio, py3-pkgconfig, curl-dev, and zlib for healpy
branch: edge
packages: >
build-base
python3-dev
py3-pip
jupyter-notebook
gfortran
fftw-dev
git
openblas-dev
cmake
geos-dev
cfitsio
py3-pkgconfig
curl-dev
zlib-dev
- name: List workspace
run: ls -l .
- name: Create Python virtual environment
if: steps.cache-wheels.outputs.cache-hit != 'true'
run: |
python -m venv "${{ github.workspace }}/venv"
echo "VENV_PATH=${{ github.workspace }}/venv" >> "$GITHUB_ENV"
shell: alpine.sh {0}
- name: Upgrade pip and install requirements for building
if: steps.cache-wheels.outputs.cache-hit != 'true'
run: |
source "$VENV_PATH/bin/activate"
python -m ensurepip
python -m pip install --upgrade pip
python -m pip install --upgrade meson-python meson ninja wheel build
shell: alpine.sh {0}
- name: Remove version settings
if: steps.cache-wheels.outputs.cache-hit != 'true'
run: |
sed 's/==.*//' requirements-dev.txt > requirements-dev_no_version.txt
- name: Remove torch, triton, jax, intel-openmp, nvidia, tbb, and mkl entries (unsupported by alpine)
if: steps.cache-wheels.outputs.cache-hit != 'true'
run: |
sed -i '/^torch/d' requirements-dev_no_version.txt
sed -i '/^nvidia/d' requirements-dev_no_version.txt
sed -i '/^triton/d' requirements-dev_no_version.txt
sed -i '/^jax/d' requirements-dev_no_version.txt
sed -i '/^intel-openmp/d' requirements-dev_no_version.txt
sed -i '/^tbb/d' requirements-dev_no_version.txt
sed -i '/^mkl/d' requirements-dev_no_version.txt
- name: Install Packages Sequentially
if: steps.cache-wheels.outputs.cache-hit != 'true'
run: |
source "$VENV_PATH/bin/activate"
cat requirements-dev_no_version.txt
while read requirement; do
echo "Installing $requirement..."
pip install "$requirement" --find-links=./alpine-wheels
done < requirements-dev_no_version.txt
shell: alpine.sh {0}
- name: Freeze requirements
if: steps.cache-wheels.outputs.cache-hit != 'true'
run: |
source "$VENV_PATH/bin/activate"
python -m pip freeze > requirements-tmp.txt
shell: alpine.sh {0}
- name: Download compatible packages
if: steps.cache-wheels.outputs.cache-hit != 'true'
run: |
source "$VENV_PATH/bin/activate"
python -m pip download --find-links=./alpine-wheels -r requirements-tmp.txt -d ./alpine-wheels
shell: alpine.sh {0}
- name: Build wheels
if: steps.cache-wheels.outputs.cache-hit != 'true'
run: |
source "$VENV_PATH/bin/activate"
cd ./alpine-wheels
# Set a flag to indicate if any .tar.gz files are found
found=0
# Loop through all .tar.gz files
for src in *.tar.gz; do
# Check if the glob gets expanded to existing files.
# If not, src will be exactly '*.tar.gz'.
[ -e "$src" ] || continue
# If we reach this point, at least one file exists
found=1
python -m pip wheel "$src" --no-deps --wheel-dir=./
rm "$src"
done
# Check if no files were found
if [ "$found" -eq 0 ]; then
echo "No .tar.gz files found."
fi
cd ..
shell: alpine.sh {0}
- name: Clean up temporary files (in case they are generated)
if: steps.cache-wheels.outputs.cache-hit != 'true'
run: rm -r venv
- name: List available wheels
run: ls -l ./alpine-wheels
# MegaLinter
- name: MegaLinter
id: ml
# You can override MegaLinter flavor used to have faster performances
# More info at https://megalinter.io/latest/configuration/#shared-variables
uses: oxsecurity/megalinter/flavors/[email protected]
env:
# All available variables are described in documentation
# https://megalinter.io/latest/configuration/#shared-variables
# ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY
VALIDATE_ALL_CODEBASE: true # ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} # Validates all source when push on main, else just the git diff with main. Override with true if you always want to lint all sources
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
EMAIL_REPORTER_SMTP_PASSWORD: ${{ secrets.SMTP_PASSWORD }}
# Upload MegaLinter artifacts
- name: Archive production artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: MegaLinter reports
path: |
megalinter-reports
mega-linter.log
# Create Pull Request step
- name: Create Pull Request with applied fixes
id: cpr
if: github.ref == 'refs/heads/main' && steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix')
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
commit-message: "[MegaLinter] Apply linters automatic fixes"
title: "[MegaLinter] Apply linters automatic fixes"
branch: megalinter-fixes
labels: bot
base: main
# Output PR details
- name: Create PR output
if: github.ref == 'refs/heads/main' && steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix')
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
# Push new commit if applicable (for now works only on PR from same repository, not from forks)
- name: Prepare commit
if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix')
run: sudo chown -Rc $UID .git/
- name: Commit and push applied linter fixes
if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix')
uses: stefanzweifel/git-auto-commit-action@v5
with:
branch: ${{ github.event.pull_request.head.ref || github.head_ref || github.ref }}
commit_message: "[MegaLinter] Apply linters fixes"
commit_user_name: megalinter-bot
commit_user_email: [email protected]