Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
python-version: ["3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: pip
Expand Down Expand Up @@ -65,10 +65,10 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: "20"

Expand All @@ -85,10 +85,10 @@ jobs:
python-version: ["3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: pip
Expand All @@ -110,7 +110,7 @@ jobs:

- name: Upload coverage report
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: coverage-${{ matrix.python-version }}
path: coverage.xml
Expand All @@ -125,10 +125,10 @@ jobs:
working-directory: frontend

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: "20"
cache: npm
Expand All @@ -142,7 +142,7 @@ jobs:

- name: Upload Vitest coverage
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: frontend-coverage
path: frontend/coverage/
Expand All @@ -153,10 +153,10 @@ jobs:
runs-on: ubuntu-latest
# Run only on Python 3.11 to keep CI fast; matrix already covers correctness
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Restore benchmark baseline
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: .benchmarks/
# Cache key: branch + commit so each PR gets a fresh start;
Expand All @@ -167,7 +167,7 @@ jobs:
benchmarks-main-

- name: Set up Python 3.11
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.11"
cache: pip
Expand All @@ -192,7 +192,7 @@ jobs:

- name: Upload benchmark results
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: benchmark-results
path: .benchmarks/
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

# Initialize CodeQL tools and create the analysis database
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# Use the default security-and-quality query suite which includes:
Expand All @@ -43,11 +43,11 @@ jobs:

# Auto-build for interpreted languages (Python does not need compilation)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4

# Run the CodeQL analysis and upload results to the Security tab
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
with:
category: '/language:${{ matrix.language }}'
# Upload results as SARIF to GitHub Security tab
Expand All @@ -57,7 +57,7 @@ jobs:

- name: Upload CodeQL SARIF as artifact
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: codeql-sarif-${{ matrix.language }}
path: codeql-results-${{ matrix.language }}.sarif
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dependency-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ jobs:
pip-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install pip-audit
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,22 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

# Set up QEMU for cross-architecture builds (arm64 needs emulation on amd64 runner)
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4
with:
platforms: linux/amd64,linux/arm64

# Enable Docker Buildx (multi-platform + advanced caching support)
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

# Authenticate to GHCR — skipped on pull_request events from forks (no write permission)
- name: Log in to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
Expand All @@ -52,7 +52,7 @@ jobs:
# • pull request → ghcr.io/tong89/smartnode:pr-<number> (build-only, no push)
- name: Extract Docker metadata (tags & labels)
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
Expand All @@ -75,7 +75,7 @@ jobs:
# Layer caching via registry cache (type=registry) re-uses unchanged layers
# across workflow runs, avoiding full rebuilds on incremental changes.
- name: Build and push Docker image
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: ./Dockerfile
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
lint-type-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install (use locked deps for reproducibility)
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:

steps:
- name: Checkout full history (needed for changelog generation)
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0 # full history so git-cliff / github-changelog-generator can walk commits

Expand Down Expand Up @@ -100,19 +100,19 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

# Multi-arch support
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4
with:
platforms: linux/amd64,linux/arm64

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
Expand All @@ -121,7 +121,7 @@ jobs:
# Extract semver tag info for image tagging
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
Expand All @@ -142,7 +142,7 @@ jobs:

- name: Build and push multi-arch image
id: build_push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: ./Dockerfile
Expand Down
24 changes: 12 additions & 12 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Python 3.11
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.11"
cache: pip
Expand All @@ -51,7 +51,7 @@ jobs:

- name: Upload pip-audit results
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: pip-audit-results
path: pip-audit-results.json
Expand All @@ -66,11 +66,11 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Build Docker image for scanning
# Build the image locally so we can scan it without needing GHCR credentials
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: ./Dockerfile
Expand All @@ -79,7 +79,7 @@ jobs:
tags: smartnode:scan-${{ github.sha }}

- name: Run Trivy vulnerability scanner on image
uses: aquasecurity/trivy-action@0.28.0
uses: aquasecurity/trivy-action@v0.36.0
with:
image-ref: smartnode:scan-${{ github.sha }}
format: 'sarif'
Expand All @@ -94,14 +94,14 @@ jobs:

- name: Upload Trivy image scan SARIF to GitHub Security tab
if: always()
uses: github/codeql-action/upload-sarif@v3
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-image-results.sarif'
category: 'trivy-image'

- name: Upload Trivy image scan results as artifact
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: trivy-image-sarif
path: trivy-image-results.sarif
Expand All @@ -114,10 +114,10 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Run Trivy vulnerability scanner on filesystem
uses: aquasecurity/trivy-action@0.28.0
uses: aquasecurity/trivy-action@v0.36.0
with:
scan-type: 'fs'
scan-ref: '.'
Expand All @@ -131,14 +131,14 @@ jobs:

- name: Upload Trivy filesystem scan SARIF to GitHub Security tab
if: always()
uses: github/codeql-action/upload-sarif@v3
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-fs-results.sarif'
category: 'trivy-fs'

- name: Upload Trivy filesystem scan results as artifact
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: trivy-fs-sarif
path: trivy-fs-results.sarif
Expand Down
Loading