mirror of
https://github.com/lancedb/lancedb.git
synced 2026-07-02 02:20:41 +00:00
Fixes #3577 ## Problem GitHub Actions is deprecating Node.js 20 on its runners. Multiple workflows in lancedb use action versions that target Node.js 20 (`actions/checkout@v4`, `actions/setup-node@v4`, `actions/cache@v4`, `actions/upload-artifact@v4`, `actions/download-artifact@v4`, `pnpm/action-setup@v4`). These are being force-run on Node.js 24, generating deprecation warnings. ## Solution Updated all deprecated actions to their latest major versions that support Node.js 24: | Action | Old Version | New Version | |--------|------------|-------------| | `actions/checkout` | @v4 | @v6 | | `actions/setup-node` | @v4 | @v6 | | `actions/cache` | @v4 | @v5 | | `actions/upload-artifact` | @v4 | @v7 | | `actions/download-artifact` | @v4 | @v8 | | `pnpm/action-setup` | @v4 | @v6 | Note: `actions/checkout@v6` and `actions/upload-artifact@v7` are already used in `pypi-publish.yml` — this PR extends the same versions to all remaining workflows. ### Files Changed - `.github/workflows/npm-publish.yml` — Updated checkout, setup-node, cache, upload-artifact, download-artifact, pnpm - `.github/workflows/nodejs.yml` — Updated checkout, setup-node, pnpm - `.github/workflows/python.yml` — Updated checkout - `.github/workflows/rust.yml` — Updated checkout - `.github/workflows/java.yml` — Updated checkout - `.github/workflows/java-publish.yml` — Updated checkout - `.github/workflows/cargo-publish.yml` — Updated checkout - `.github/workflows/docs.yml` — Updated checkout, setup-node - `.github/workflows/dev.yml` — Updated setup-node - `.github/workflows/codex-fix-ci.yml` — Updated checkout, setup-node, pnpm - `.github/workflows/codex-update-lance-dependency.yml` — Updated checkout, setup-node - `.github/workflows/license-header-check.yml` — Updated checkout - `.github/workflows/make-release-commit.yml` — Updated checkout - `.github/workflows/update_package_lock_run.yml` — Updated checkout - `.github/workflows/update_package_lock_run_nodejs.yml` — Updated checkout ## Verification - All 20 YAML files validated with `yaml.safe_load()` — no syntax errors - GitHub Actions CI will validate the actual action versions at runtime ## Changelog | Date | Change | Author | |------|--------|--------| | 2026-07-01 | Updated all deprecated Node 20 actions to latest versions across 15 workflow files | rtmalikian | --- **Disclosure:** This code was developed with assistance from DeepSeek-v4-pro (DeepSeek) via Hermes Agent (Nous Research). All changes were reviewed and verified for correctness. Signed-off-by: rtmalikian <rtmalikian@gmail.com>
96 lines
3.5 KiB
YAML
96 lines
3.5 KiB
YAML
name: Create release commit
|
|
|
|
# This workflow increments versions, tags the version, and pushes it.
|
|
# When a tag is pushed, another workflow is triggered that creates a GH release
|
|
# and uploads the binaries. This workflow is only for creating the tag.
|
|
|
|
# This script will enforce that a minor version is incremented if there are any
|
|
# breaking changes since the last minor increment. However, it isn't able to
|
|
# differentiate between breaking changes in Node versus Python. If you wish to
|
|
# bypass this check, you can manually increment the version and push the tag.
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
dry_run:
|
|
description: 'Dry run (create the local commit/tags but do not push it)'
|
|
required: true
|
|
default: false
|
|
type: boolean
|
|
type:
|
|
description: 'What kind of release is this?'
|
|
required: true
|
|
default: 'preview'
|
|
type: choice
|
|
options:
|
|
- preview
|
|
- stable
|
|
python:
|
|
description: 'Make a Python release'
|
|
required: true
|
|
default: true
|
|
type: boolean
|
|
other:
|
|
description: 'Make a Node/Rust/Java release'
|
|
required: true
|
|
default: true
|
|
type: boolean
|
|
bump-minor:
|
|
description: 'Bump minor version'
|
|
required: true
|
|
default: false
|
|
type: boolean
|
|
|
|
jobs:
|
|
make-release:
|
|
# Creates tag and GH release. The GH release will trigger the build and release jobs.
|
|
runs-on: ubuntu-24.04
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- name: Output Inputs
|
|
run: echo "${{ toJSON(github.event.inputs) }}"
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
lfs: true
|
|
# It's important we use our token here, as the default token will NOT
|
|
# trigger any workflows watching for new tags. See:
|
|
# https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow
|
|
token: ${{ secrets.LANCEDB_RELEASE_TOKEN }}
|
|
- name: Validate Lance dependency is at stable version
|
|
if: ${{ inputs.type == 'stable' }}
|
|
run: python ci/validate_stable_lance.py
|
|
- name: Set git configs for bumpversion
|
|
shell: bash
|
|
run: |
|
|
git config user.name 'Lance Release'
|
|
git config user.email 'lance-dev@lancedb.com'
|
|
- name: Bump Python version
|
|
if: ${{ inputs.python }}
|
|
working-directory: python
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
# Need to get the commit before bumping the version, so we can
|
|
# determine if there are breaking changes in the next step as well.
|
|
echo "COMMIT_BEFORE_BUMP=$(git rev-parse HEAD)" >> $GITHUB_ENV
|
|
|
|
pip install bump-my-version PyGithub packaging
|
|
bash ../ci/bump_version.sh ${{ inputs.type }} ${{ inputs.bump-minor }} python-v
|
|
- name: Bump Node/Rust version
|
|
if: ${{ inputs.other }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
pip install bump-my-version PyGithub packaging
|
|
bash ci/bump_version.sh ${{ inputs.type }} ${{ inputs.bump-minor }} v $COMMIT_BEFORE_BUMP
|
|
bash ci/update_lockfiles.sh --amend
|
|
- name: Push new version tag
|
|
if: ${{ !inputs.dry_run }}
|
|
uses: ad-m/github-push-action@master
|
|
with:
|
|
# Need to use PAT here too to trigger next workflow. See comment above.
|
|
github_token: ${{ secrets.LANCEDB_RELEASE_TOKEN }}
|
|
branch: ${{ github.ref }}
|
|
tags: true
|