From ef379441edd975634ea71e5c0707df5527eccc56 Mon Sep 17 00:00:00 2001
From: Claude <noreply@anthropic.com>
Date: Fri, 22 May 2026 16:50:44 +0000
Subject: [PATCH 1/2] Bump deprecated GitHub Actions to current major versions

The Apr 13 deploy run flagged Node 20 actions as deprecated. Bumping all
actions to their current latest major versions which run on Node 24:

- actions/checkout v4 -> v6
- actions/setup-python v4 -> v6
- actions/setup-node v4 -> v6
- actions/configure-pages v4 -> v6
- actions/upload-artifact v4 -> v7
- actions/download-artifact v4 -> v8
- actions/upload-pages-artifact v3 -> v5
- actions/deploy-pages v4 -> v5
---
 .github/workflows/ci.yaml    | 12 ++++++------
 .github/workflows/deploy.yml | 14 +++++++-------
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 81f61dc..ff18da1 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -32,10 +32,10 @@ jobs:
   build:
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - name: Set up Python
         # This is the version of the action for setting up Python, not the Python version.
-        uses: actions/setup-python@v4
+        uses: actions/setup-python@v6
         with:
           # Semantic version range syntax or exact version of a Python version
           python-version: '3.10'
@@ -46,7 +46,7 @@ jobs:
       # You can test your matrix by printing the current Python version
       - name: Run Scrapers
         run: python run_scrapers.py
-      - uses: actions/upload-artifact@v4
+      - uses: actions/upload-artifact@v7
         with:
           name: hop_database
           path: |
@@ -57,8 +57,8 @@ jobs:
     runs-on: ubuntu-latest
     if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/copilot/tag-release-v')
     steps:
-      - uses: actions/checkout@v4
-      
+      - uses: actions/checkout@v6
+
       - name: Generate version tag
         id: version
         run: |
@@ -101,7 +101,7 @@ jobs:
           fi
       
       - name: Download artifact
-        uses: actions/download-artifact@v4
+        uses: actions/download-artifact@v8
         with:
           name: hop_database
           path: ./data
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index c8a725c..3b50e48 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -22,10 +22,10 @@ jobs:
     
     steps:
     - name: Checkout
-      uses: actions/checkout@v4
-      
+      uses: actions/checkout@v6
+
     - name: Setup Node.js
-      uses: actions/setup-node@v4
+      uses: actions/setup-node@v6
       with:
         node-version: '18'
         cache: 'npm'
@@ -42,10 +42,10 @@ jobs:
         npm run build:prod
         
     - name: Setup Pages
-      uses: actions/configure-pages@v4
-      
+      uses: actions/configure-pages@v6
+
     - name: Upload artifact
-      uses: actions/upload-pages-artifact@v3
+      uses: actions/upload-pages-artifact@v5
       with:
         path: ./website/build
 
@@ -59,4 +59,4 @@ jobs:
     steps:
       - name: Deploy to GitHub Pages
         id: deployment
-        uses: actions/deploy-pages@v4
+        uses: actions/deploy-pages@v5

From 2d84aeb7fb4f282302b9e08e188ee3b33fc26376 Mon Sep 17 00:00:00 2001
From: Claude <noreply@anthropic.com>
Date: Fri, 22 May 2026 16:55:15 +0000
Subject: [PATCH 2/2] Remove scraper CI workflow

The Python Scripts CI workflow has been failing because yakimavalleyhops.com
started returning 403 to GitHub-runner IPs. Per the user's direction, drop
the scraper from CI entirely and rely on the already-checked-in static
dataset at website/public/data/hops.json for deploys.

The deploy workflow consumes that file directly via the React build, so
the live site is unaffected. If data needs refreshing in the future, the
scrapers can be run locally and the result committed.
---
 .github/workflows/ci.yaml | 119 --------------------------------------
 1 file changed, 119 deletions(-)
 delete mode 100644 .github/workflows/ci.yaml

diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
deleted file mode 100644
index ff18da1..0000000
--- a/.github/workflows/ci.yaml
+++ /dev/null
@@ -1,119 +0,0 @@
-name: Python Scripts CI
-
-on:
-  schedule:
-    # Run on the 1st day of every month at 00:00 UTC
-    - cron: '0 0 1 * *'
-  push:
-    # Sequence of patterns matched against refs/tags
-    tags:
-    - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
-    branches:
-    - 'claude/*' # Trigger on claude/* branch pushes for CI validation
-    - 'copilot/tag-release-v*' # Trigger release when Copilot creates a release branch
-  workflow_dispatch: # Allow manual trigger
-    inputs:
-      version:
-        description: 'Release version (e.g., v1.2.0). Leave empty for auto-generated version.'
-        required: false
-        type: string
-      release_name:
-        description: 'Custom release name. Leave empty for default.'
-        required: false
-        type: string
-      prerelease:
-        description: 'Mark as pre-release'
-        required: false
-        type: boolean
-        default: false
-
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v6
-      - name: Set up Python
-        # This is the version of the action for setting up Python, not the Python version.
-        uses: actions/setup-python@v6
-        with:
-          # Semantic version range syntax or exact version of a Python version
-          python-version: '3.10'
-      - name: Install dependencies
-        run: |
-          python -m pip install --upgrade pip
-          pip install -r requirements.txt
-      # You can test your matrix by printing the current Python version
-      - name: Run Scrapers
-        run: python run_scrapers.py
-      - uses: actions/upload-artifact@v7
-        with:
-          name: hop_database
-          path: |
-            data/hops.json
-            data/combined.json
-  release:
-    needs: build
-    runs-on: ubuntu-latest
-    if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/copilot/tag-release-v')
-    steps:
-      - uses: actions/checkout@v6
-
-      - name: Generate version tag
-        id: version
-        run: |
-          if [[ "${{ github.event_name }}" == "workflow_dispatch" && "${{ github.event.inputs.version }}" != "" ]]; then
-            # Use custom version from manual trigger
-            echo "tag_name=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
-            if [[ "${{ github.event.inputs.release_name }}" != "" ]]; then
-              echo "release_name=${{ github.event.inputs.release_name }}" >> $GITHUB_OUTPUT
-            else
-              echo "release_name=Release ${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
-            fi
-          elif [[ "${{ github.ref }}" == refs/heads/copilot/tag-release-v* ]]; then
-            # Extract version from Copilot release branch name: copilot/tag-release-vX.Y.Z -> vX.Y.Z
-            VERSION="${GITHUB_REF#refs/heads/copilot/tag-release-}"
-            echo "tag_name=$VERSION" >> $GITHUB_OUTPUT
-            echo "release_name=Release $VERSION" >> $GITHUB_OUTPUT
-          elif [[ "${{ github.event_name }}" == "schedule" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then
-            # Generate version based on current date (YYYY.MM format)
-            VERSION="v$(date +'%Y.%m')"
-            echo "tag_name=$VERSION" >> $GITHUB_OUTPUT
-            echo "release_name=Monthly Release $VERSION" >> $GITHUB_OUTPUT
-          else
-            # Use the pushed tag
-            echo "tag_name=${{ github.ref_name }}" >> $GITHUB_OUTPUT
-            echo "release_name=Release ${{ github.ref_name }}" >> $GITHUB_OUTPUT
-          fi
-      
-      - name: Create and push tag (for scheduled/dispatch/release-branch runs)
-        if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/heads/copilot/tag-release-v')
-        run: |
-          git config --local user.email "action@github.com"
-          git config --local user.name "GitHub Action"
-          git fetch origin main
-          # Only create and push the tag if it does not already exist
-          if git ls-remote --tags origin "${{ steps.version.outputs.tag_name }}" | grep -q .; then
-            echo "Tag ${{ steps.version.outputs.tag_name }} already exists, skipping tag creation."
-          else
-            git tag ${{ steps.version.outputs.tag_name }} $(git rev-parse origin/main)
-            git push origin ${{ steps.version.outputs.tag_name }}
-          fi
-      
-      - name: Download artifact
-        uses: actions/download-artifact@v8
-        with:
-          name: hop_database
-          path: ./data
-      
-      - name: Create Release
-        id: create_release
-        uses: softprops/action-gh-release@v2
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          tag_name: ${{ steps.version.outputs.tag_name }}
-          name: ${{ steps.version.outputs.release_name }}
-          draft: false
-          prerelease: ${{ github.event.inputs.prerelease == 'true' }}
-          files: ./data/combined.json
\ No newline at end of file
