This is an automated email from the ASF dual-hosted git repository.

epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr-mcp.git


The following commit(s) were added to refs/heads/main by this push:
     new 91d15e0  ci: remove nightly-build.yml (broken at startup, unwanted) 
(#155)
91d15e0 is described below

commit 91d15e0c047b76f473b5baca17e6d3f9d027be3a
Author: Aditya Parikh <[email protected]>
AuthorDate: Fri Jun 19 12:16:09 2026 -0400

    ci: remove nightly-build.yml (broken at startup, unwanted) (#155)
    
    nightly-build.yml failed at startup on every scan (zero jobs) because of a 
secrets-in-if expression: 'if: ${{ secrets.APACHE_NIGHTLIES_USER != '\'''\'' 
}}'. The secrets context is not available in if: conditions, so GitHub rejects 
the workflow at parse time — a separate cause from the docker/login-action 
allow-list issue fixed in #153/#154.
    
    The nightlies.apache.org upload was only a placeholder and a daily nightly 
pre-release isn't wanted, so remove the workflow entirely rather than fix the 
parse error. dev-docs/WORKFLOWS.md and dev-docs/DOCKER_PUBLISHING.md are 
updated to drop nightly references (dedicated section, comparison-matrix 
column, scenario, registry list, tagging).
    
    Note: the 'COMPARISON WITH OTHER WORKFLOWS' header comments in 
build-and-publish.yml, release-publish.yml, and atr-release.yml still list 
nightly-build; left as-is to avoid conflicts with #153/#154 which modify the 
first two.
    
    Signed-off-by: adityamparikh <[email protected]>
    Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
---
 .github/workflows/nightly-build.yml | 216 ------------------------------------
 dev-docs/DOCKER_PUBLISHING.md       |  21 +---
 dev-docs/WORKFLOWS.md               | 123 ++------------------
 3 files changed, 15 insertions(+), 345 deletions(-)

diff --git a/.github/workflows/nightly-build.yml 
b/.github/workflows/nightly-build.yml
deleted file mode 100644
index 5f70074..0000000
--- a/.github/workflows/nightly-build.yml
+++ /dev/null
@@ -1,216 +0,0 @@
-# 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 regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# ╔═══════════════════════════════════════════════════════════════════════════╗
-# ║                         NIGHTLY BUILD WORKFLOW                             
║
-# ║                        (Latest Unstable Builds)                            
║
-# ╚═══════════════════════════════════════════════════════════════════════════╝
-#
-# PURPOSE: Automated nightly builds for testing latest changes
-#
-# WHEN TO USE:
-# -----------
-# ✅ Automatic daily at 2 AM UTC
-# ✅ For testing latest main branch changes
-# ✅ Provides unstable/preview builds
-# ✅ Publishes to apache/solr-mcp-nightly
-# ❌ DO NOT use for production releases
-#
-# COMPARISON WITH OTHER WORKFLOWS:
-# --------------------------------
-# nightly-build.yml (THIS FILE):
-#   - Purpose: Nightly builds
-#   - Trigger: Scheduled (2 AM UTC)
-#   - Docker Hub: apache/solr-mcp-nightly
-#   - Stability: Unstable/preview
-#   - Use for: Testing latest changes
-#
-# build-and-publish.yml:
-#   - Purpose: Development CI/CD
-#   - Trigger: Automatic (push/PR)
-#   - Docker Hub: Personal namespace
-#   - Use for: Daily development work
-#
-# release-publish.yml:
-#   - Purpose: Official ASF releases
-#   - Trigger: Manual (after vote)
-#   - Docker Hub: apache/solr-mcp
-#   - Stability: Stable/production
-#   - Use for: Production releases
-#
-# atr-release.yml:
-#   - Purpose: Future ATR automation
-#   - Status: Blocked (needs automated signing)
-#   - Use for: When ATR is ready
-#
-# ────────────────────────────────────────────────────────────────────────────
-#
-# Nightly Build Workflow for Apache Solr MCP
-# ===========================================
-#
-# This workflow creates nightly builds for the Solr MCP project and publishes
-# them to Apache's nightly infrastructure and Docker Hub preview registry.
-#
-# Schedule:
-# ---------
-# Runs daily at 2 AM UTC or on manual trigger
-#
-# Artifacts Published:
-# --------------------
-# 1. Source tarball to https://nightlies.apache.org/solr/mcp/
-# 2. Docker image to apache/solr-mcp-nightly on Docker Hub
-# 3. Build artifacts to GitHub releases (pre-release)
-
-name: Nightly Build
-
-# Triggers for the workflow
-# - schedule: runs automatically via cron at a fixed time (02:00 UTC daily)
-# - workflow_dispatch: allow maintainers to run the workflow manually and pass 
inputs
-on:
-  schedule:
-    # Run at 2 AM UTC every day
-    - cron: '0 2 * * *'
-  workflow_dispatch:  # Allow manual trigger
-    inputs:
-        # Optional input to skip Docker publishing if you only want to build 
artifacts
-      skip_docker:
-        description: 'Skip Docker publishing'
-        required: false
-        type: boolean
-        default: false
-
-jobs:
-  nightly-build:
-    name: Nightly Build and Publish
-    runs-on: ubuntu-latest
-
-      # Permissions required by this job:
-      # - contents:write → needed to create GitHub pre-releases and upload 
assets
-      # - packages:write → needed when pushing container images to registries
-    permissions:
-      contents: write
-      packages: write
-
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@v4
-
-      # Set up Java environment using centralized configuration
-      # See .github/actions/setup-java/action.yml to update Java version
-      - name: Set up Java
-        uses: ./.github/actions/setup-java
-
-      - name: Generate nightly version
-        id: version
-        run: |
-          # Generate version with date stamp
-          DATE_STAMP=$(date +%Y%m%d)
-          SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)
-          NIGHTLY_VERSION="nightly-${DATE_STAMP}-${SHORT_SHA}"
-          echo "version=$NIGHTLY_VERSION" >> $GITHUB_OUTPUT
-          echo "date=$DATE_STAMP" >> $GITHUB_OUTPUT
-
-      - name: Build project
-        run: ./gradlew build
-
-      - name: Create source distribution
-        run: |
-          # Create source tarball
-          mkdir -p build/distributions
-          tar czf build/distributions/solr-mcp-${{ 
steps.version.outputs.version }}-src.tar.gz \
-            --exclude='.git' \
-            --exclude='build' \
-            --exclude='.gradle' \
-            --exclude='*.iml' \
-            --exclude='.idea' \
-            .
-
-          # Generate SHA512 checksum
-          cd build/distributions
-          sha512sum solr-mcp-${{ steps.version.outputs.version }}-src.tar.gz > 
\
-            solr-mcp-${{ steps.version.outputs.version }}-src.tar.gz.sha512
-
-      - name: Build and publish Docker image to apache/solr-mcp-nightly
-        if: ${{ !inputs.skip_docker }}
-        run: |
-          # Build and push to apache/solr-mcp-nightly
-          # Note: Requires DOCKERHUB_APACHE_USERNAME and 
DOCKERHUB_APACHE_TOKEN secrets
-          # These should be set up with Apache PMC credentials
-          if [[ -n "${{ secrets.DOCKERHUB_APACHE_USERNAME }}" ]]; then
-            ./gradlew jib \
-              -Djib.to.image=apache/solr-mcp-nightly:${{ 
steps.version.outputs.version }} \
-              -Djib.to.auth.username=${{ secrets.DOCKERHUB_APACHE_USERNAME }} \
-              -Djib.to.auth.password=${{ secrets.DOCKERHUB_APACHE_TOKEN }} \
-              -Djib.to.tags=${{ steps.version.outputs.version }},latest-nightly
-          fi
-
-      - name: Upload to Apache Nightlies
-        if: ${{ secrets.APACHE_NIGHTLIES_USER != '' }}
-        run: |
-          # Upload to Apache nightlies infrastructure
-          # Requires APACHE_NIGHTLIES_USER and APACHE_NIGHTLIES_KEY secrets
-          # These are typically available to Apache committers
-
-          # Create directory structure
-          UPLOAD_DIR="solr/mcp/${{ steps.version.outputs.date }}"
-
-          # Use rsync or scp to upload to nightlies.apache.org
-          # This is a placeholder - actual implementation depends on Apache 
infra access
-          echo "Would upload to: https://nightlies.apache.org/${UPLOAD_DIR}/";
-          echo "Files to upload:"
-          ls -la build/distributions/
-
-      - name: Create GitHub pre-release
-        # ASF policy disallows non-allow-listed third-party actions; use the gh
-        # CLI (already used below to prune old nightlies) instead of
-        # softprops/action-gh-release.
-        env:
-          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          NIGHTLY_DATE: ${{ steps.version.outputs.date }}
-        run: |
-          cat > "${RUNNER_TEMP}/nightly-notes.md" <<'NOTES'
-          ## Nightly Build
-
-          **Date**: ${{ steps.version.outputs.date }}
-          **Commit**: ${{ github.sha }}
-
-          ### Docker Image
-          ```bash
-          docker pull apache/solr-mcp-nightly:${{ 
steps.version.outputs.version }}
-          ```
-
-          ### Source Distribution
-          - [solr-mcp-${{ steps.version.outputs.version 
}}-src.tar.gz](https://github.com/${{ github.repository 
}}/releases/download/nightly-${{ steps.version.outputs.date }}/solr-mcp-${{ 
steps.version.outputs.version }}-src.tar.gz)
-
-          **Note**: This is a nightly build and not an official Apache release.
-          NOTES
-          gh release create "nightly-${NIGHTLY_DATE}" \
-            --title "Nightly Build ${NIGHTLY_DATE}" \
-            --prerelease \
-            --notes-file "${RUNNER_TEMP}/nightly-notes.md" \
-            build/distributions/solr-mcp-*.tar.gz \
-            build/distributions/solr-mcp-*.sha512 \
-            build/libs/solr-mcp-*.jar
-
-      - name: Clean up old nightly releases
-        run: |
-          # Keep only the last 7 nightly builds
-          # This helps manage storage and keeps releases clean
-          gh release list --limit 100 | grep "^nightly-" | tail -n +8 | cut 
-f1 | while read tag; do
-            echo "Deleting old nightly release: $tag"
-            gh release delete "$tag" --yes --cleanup-tag
-          done
-        env:
-          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/dev-docs/DOCKER_PUBLISHING.md b/dev-docs/DOCKER_PUBLISHING.md
index 56c354d..010a8fd 100644
--- a/dev-docs/DOCKER_PUBLISHING.md
+++ b/dev-docs/DOCKER_PUBLISHING.md
@@ -1,6 +1,6 @@
 # Docker Publishing Guide for Apache Solr MCP
 
-This guide documents the Docker image publishing process for Apache Solr MCP, 
including nightly builds, release candidates, and official releases.
+This guide documents the Docker image publishing process for Apache Solr MCP, 
including release candidates and official releases.
 
 ## Overview
 
@@ -8,7 +8,6 @@ The Solr MCP project publishes Docker images to multiple 
registries:
 
 1. **GitHub Container Registry (GHCR)**: `ghcr.io/apache/solr-mcp`
 2. **Docker Hub Official**: `apache/solr-mcp` (requires Apache PMC credentials)
-3. **Docker Hub Nightly**: `apache/solr-mcp-nightly` (for pre-release builds)
 
 ## Build System
 
@@ -29,20 +28,7 @@ Currently, this repository does not define an automated 
workflow for per-merge d
   - `ghcr.io/{owner}/solr-mcp:latest`
 - No ASF vote required for dev images (they are not releases and must be 
clearly marked as such).
 
-### 2. Nightly Builds
-
-**Workflow**: `.github/workflows/nightly-build.yml`
-
-- **Schedule**: Daily at 2 AM UTC
-- **Images Published**:
-  - `apache/solr-mcp-nightly:nightly-YYYYMMDD-SHA`
-  - `apache/solr-mcp-nightly:latest-nightly`
-- **Artifacts**:
-  - Source tarball to `https://nightlies.apache.org/solr/mcp/`
-  - GitHub pre-release with build artifacts
-- **No ASF vote required**
-
-### 3. Official Releases
+### 2. Official Releases
 
 **Workflow**: `.github/workflows/release-publish.yml`
 
@@ -63,7 +49,7 @@ Currently, this repository does not define an automated 
workflow for per-merge d
 - The authoritative ASF release is the signed source distribution published to 
the ASF distribution system (`dist.apache.org` / `downloads.apache.org` 
mirrors). Docker images and other binaries are considered convenience binaries 
and must be built from the voted source, but they are not the release of record.
 - Releases require a minimum 72-hour vote with at least three +1 binding PMC 
votes. Only after the vote passes may convenience binaries (e.g., Docker 
images) be published.
 - Release artifacts must be signed by the Release Manager using their PGP key 
that is present in the project `KEYS` file. Automated signing via ASF Infra may 
be possible but must be explicitly arranged with INFRA; manual RM signing 
remains the baseline.
-- Nightly and per-merge builds are allowed as non-release artifacts. They must 
be clearly marked as such and must not be uploaded to the ASF release 
distribution system.
+- Per-merge and ad-hoc development builds are allowed as non-release 
artifacts. They must be clearly marked as such and must not be uploaded to the 
ASF release distribution system.
 
 ## ASF Release Process
 
@@ -220,7 +206,6 @@ If ARM64 builds fail:
 ## Versioning Strategy
 
 - **Main branch**: `VERSION-SNAPSHOT-SHA` (e.g., `1.0.0-SNAPSHOT-a1b2c3d`)
-- **Nightly**: `nightly-YYYYMMDD-SHA` (e.g., `nightly-20240115-a1b2c3d`)
 - **Release**: Semantic versioning `MAJOR.MINOR.PATCH` (e.g., `1.0.0`)
 
 ## Release Checklist
diff --git a/dev-docs/WORKFLOWS.md b/dev-docs/WORKFLOWS.md
index e988d3d..c11309b 100644
--- a/dev-docs/WORKFLOWS.md
+++ b/dev-docs/WORKFLOWS.md
@@ -8,7 +8,6 @@ This guide explains when and how to use each GitHub Actions 
workflow in the proj
 
|------------------------------------------------|-----------------------|----------------------|------------|------------------------|
 | [build-and-publish.yml](#build-and-publishyml) | Development CI/CD     | 
Automatic (push/PR)  | ✅ Active   | Daily development      |
 | [release-publish.yml](#release-publishyml)     | Official ASF releases | 
Manual (after vote)  | ✅ Active   | Production releases    |
-| [nightly-build.yml](#nightly-buildyml)         | Nightly builds        | 
Scheduled (2 AM UTC) | ✅ Active   | Latest unstable builds |
 | [atr-release-test.yml](#atr-release-testyml)   | ATR testing           | 
Manual (safe mode)   | ✅ Ready    | Testing ATR workflow   |
 | [atr-release.yml](#atr-releaseyml)             | ATR production        | 
Manual (blocked)     | ⚠️ Blocked | Future ATR releases    |
 
@@ -236,94 +235,6 @@ on:
 
 ---
 
-### nightly-build.yml
-
-**Purpose**: Automated nightly builds for testing latest changes
-
-#### When to Use
-
-- ✅ Automatic daily at 2 AM UTC
-- ✅ For testing bleeding-edge changes
-- ✅ When you want the absolute latest build
-
-#### When NOT to Use
-
-- ❌ For production use (unstable)
-- ❌ For official releases
-
-#### Triggers
-
-```yaml
-on:
-  schedule:
-    - cron: '0 2 * * *'  # 2 AM UTC daily
-  workflow_dispatch:
-    inputs:
-      skip_docker:  # Skip Docker publishing
-```
-
-#### What It Does
-
-1. **Builds** the project from `main` branch
-2. **Creates source distribution** with date stamp
-3. **Publishes Docker image** to:
-    - Docker Hub: `apache/solr-mcp-nightly:nightly-YYYYMMDD-SHA`
-    - Tag: `latest-nightly`
-4. **Uploads to Apache Nightlies** (if configured)
-5. **Creates GitHub pre-release** with artifacts
-6. **Cleans up** old nightly builds (keeps last 7)
-
-#### Image Tagging Strategy
-
-- **Nightly tag**: `nightly-20250112-a1b2c3d`
-- **Latest nightly**: `latest-nightly`
-
-#### Required Secrets
-
-- `DOCKERHUB_APACHE_USERNAME` - Apache PMC Docker Hub credentials
-- `DOCKERHUB_APACHE_TOKEN` - Apache PMC Docker Hub token
-- `APACHE_NIGHTLIES_USER` (optional) - For nightlies.apache.org uploads
-- `APACHE_NIGHTLIES_KEY` (optional) - SSH key for nightlies
-
-#### How to Use
-
-**Automatic (Default)**:
-
-```bash
-# Runs automatically every night at 2 AM UTC
-# No action needed
-```
-
-**Manual Trigger**:
-
-```bash
-# Via GitHub UI: Actions → Nightly Build → Run workflow
-# Or via CLI:
-gh workflow run nightly-build.yml
-
-# Skip Docker publishing:
-gh workflow run nightly-build.yml -f skip_docker=true
-```
-
-**Using Nightly Images**:
-
-```bash
-# Pull today's nightly
-docker pull apache/solr-mcp-nightly:latest-nightly
-
-# Pull specific date
-docker pull apache/solr-mcp-nightly:nightly-20250112-a1b2c3d
-```
-
-#### Example Use Cases
-
-- Testing unreleased features
-- Catching bugs early in development
-- Integration testing with latest changes
-- Providing preview builds to early adopters
-
----
-
 ### atr-release-test.yml
 
 **Purpose**: Test Apache Trusted Releases (ATR) workflow safely
@@ -493,16 +404,16 @@ gh workflow run atr-release.yml \
 
 ## Workflow Comparison Matrix
 
-| Feature              | build-and-publish | release-publish | nightly-build   
   | atr-release-test | atr-release |
-|----------------------|-------------------|-----------------|--------------------|------------------|-------------|
-| **Status**           | ✅ Active          | ✅ Active        | ✅ Active        
   | ✅ Ready          | ⚠️ Blocked  |
-| **Trigger**          | Automatic         | Manual          | Scheduled       
   | Manual           | Manual      |
-| **Docker Namespace** | Personal/GHCR     | `apache/*`      | 
`apache/*-nightly` | Test             | `apache/*`  |
-| **MCP Registry**     | ❌ No              | ✅ Yes           | ❌ No            
   | ❌ No             | ✅ Yes       |
-| **ASF Vote**         | ❌ Not required    | ✅ Required      | ❌ Not required  
   | ❌ Not required   | ✅ Required  |
-| **Signing**          | ❌ No              | ⚠️ Manual       | ❌ No            
   | ⚠️ Simulated     | ✅ Automated |
-| **Production Ready** | ❌ No              | ✅ Yes           | ❌ No            
   | ❌ No             | ⚠️ Future   |
-| **Can Test Now**     | ✅ Yes             | ✅ Yes           | ✅ Yes           
   | ✅ Yes            | ❌ No        |
+| Feature              | build-and-publish | release-publish | 
atr-release-test | atr-release |
+|----------------------|-------------------|-----------------|------------------|-------------|
+| **Status**           | ✅ Active          | ✅ Active        | ✅ Ready         
 | ⚠️ Blocked  |
+| **Trigger**          | Automatic         | Manual          | Manual          
 | Manual      |
+| **Docker Namespace** | Personal/GHCR     | `apache/*`      | Test            
 | `apache/*`  |
+| **MCP Registry**     | ❌ No              | ✅ Yes           | ❌ No            
 | ✅ Yes       |
+| **ASF Vote**         | ❌ Not required    | ✅ Required      | ❌ Not required  
 | ✅ Required  |
+| **Signing**          | ❌ No              | ⚠️ Manual       | ⚠️ Simulated    
 | ✅ Automated |
+| **Production Ready** | ❌ No              | ✅ Yes           | ❌ No            
 | ⚠️ Future   |
+| **Can Test Now**     | ✅ Yes             | ✅ Yes           | ✅ Yes           
 | ❌ No        |
 
 ---
 
@@ -535,16 +446,7 @@ gh workflow run release-publish.yml \
   -f release_candidate=rc1
 ```
 
-### Scenario 3: I want to test the latest unreleased code
-
-**Use**: `nightly-build.yml` (automatic daily)
-
-```bash
-# Pull the latest nightly
-docker pull apache/solr-mcp-nightly:latest-nightly
-```
-
-### Scenario 4: I want to prepare for ATR
+### Scenario 3: I want to prepare for ATR
 
 **Use**: `atr-release-test.yml` (manual testing)
 
@@ -554,7 +456,7 @@ gh workflow run atr-release-test.yml \
   -f dry_run=true  # Safe mode - no uploads
 ```
 
-### Scenario 5: I'm ready to use ATR for releases
+### Scenario 4: I'm ready to use ATR for releases
 
 **Use**: `atr-release.yml` (blocked - see prerequisites)
 
@@ -639,7 +541,6 @@ gh secret set ASF_USERNAME --body "your-asf-id"
 # Trigger workflows manually
 gh workflow run build-and-publish.yml
 gh workflow run release-publish.yml -f release_version=1.0.0 -f 
release_candidate=rc1
-gh workflow run nightly-build.yml
 gh workflow run atr-release-test.yml -f dry_run=true
 
 # View workflow runs

Reply via email to