ci: delete bcr ci

This commit is contained in:
qijia 2025-12-13 10:30:23 +08:00
parent 8833caf7df
commit 5a8b87aaaa
No known key found for this signature in database
GPG Key ID: 236267CAA32A4F62
8 changed files with 1 additions and 327 deletions

View File

@ -1,3 +0,0 @@
# Fix ccache issues in sandbox by using local strategy
# This prevents "Read-only file system" errors when ccache tries to write temp files
build --spawn_strategy=local

View File

@ -1,13 +0,0 @@
{
"homepage": "https://github.com/MrAMS/iverilog",
"maintainers": [
{
"email": "",
"github": "MrAMS",
"name": "Qijia Yang"
}
],
"repository": ["github:MrAMS/iverilog"],
"versions": [],
"yanked_versions": {}
}

View File

@ -1,18 +0,0 @@
# BCR presubmit configuration for iverilog module
# This file defines the build verification tests
# Simple smoke test matrix
matrix:
platform:
- ubuntu2004
bazel: ["7.x", "8.x"]
tasks:
verify_targets:
name: Verify build targets
platform: ${{ platform }}
bazel: ${{ bazel }}
build_targets:
- "@iverilog//:ivl"
- "@iverilog//:ivlpp"
- "@iverilog//:iverilog-bin"

View File

@ -1,5 +0,0 @@
{
"integrity": "",
"strip_prefix": "iverilog-{VERSION}",
"url": "https://github.com/{OWNER}/{REPO}/releases/download/v{VERSION}/iverilog-{VERSION}.tar.gz"
}

View File

@ -1,34 +0,0 @@
# This file contains the centralized configuration for all BCR-related workflows.
# All GitHub Actions workflows will read from this file.
#
# To change configuration, edit the values below and commit the changes.
# Project name (used in archive naming)
project_name: iverilog
# BCR registry fork repository
# This is where the module will be published
bcr_registry_fork: MrAMS/bazel-central-registry
# Upstream repository
# Auto-detected from fork parent via GitHub API
# No manual configuration needed
upstream_url: auto-detected
# Release archive excludes
# These files/directories are removed from release archives
exclude_from_archive:
- .git
- .github
- bazel-*
- scripts
- .gitmodules
- .gitignore
# Sync schedule
# Monthly sync on the 1st day at 00:00 UTC
sync_schedule: "0 0 1 * *"
# Usage in workflows:
# - publish-to-bcr.yml: Reads project_name and bcr_registry_fork using yq
# - schedule-sync.yml: Uses sync_schedule and auto-detects upstream_url
# - All values are loaded dynamically at runtime

View File

@ -1,103 +0,0 @@
name: Publish to BCR
on:
release:
types: [published]
workflow_dispatch:
inputs:
tag_name:
description: "Tag name to publish (e.g., v1.0.0)"
required: true
type: string
jobs:
create-archive:
runs-on: ubuntu-latest
permissions:
contents: write
outputs:
tag_name: ${{ steps.get_version.outputs.tag_name }}
project_name: ${{ steps.load_config.outputs.project_name }}
bcr_registry_fork: ${{ steps.load_config.outputs.bcr_registry_fork }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.release.tag_name || inputs.tag_name }}
submodules: recursive
- name: Load configuration
id: load_config
run: |
PROJECT_NAME=$(yq '.project_name' .github/bcr-config.yml)
BCR_REGISTRY_FORK=$(yq '.bcr_registry_fork' .github/bcr-config.yml)
echo "project_name=$PROJECT_NAME" >> $GITHUB_OUTPUT
echo "bcr_registry_fork=$BCR_REGISTRY_FORK" >> $GITHUB_OUTPUT
echo "Loaded configuration:"
echo " PROJECT_NAME=$PROJECT_NAME"
echo " BCR_REGISTRY_FORK=$BCR_REGISTRY_FORK"
- name: Get version from tag
id: get_version
run: |
TAG_NAME="${{ github.event.release.tag_name || inputs.tag_name }}"
VERSION="${TAG_NAME#v}"
echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "tag_name=${TAG_NAME}" >> $GITHUB_OUTPUT
echo "Version: ${VERSION}"
echo "Tag: ${TAG_NAME}"
- name: Create release archive
run: |
PROJECT_NAME="${{ steps.load_config.outputs.project_name }}"
VERSION="${{ steps.get_version.outputs.version }}"
ARCHIVE_NAME="${PROJECT_NAME}-${VERSION}.tar.gz"
echo "Creating archive: ${ARCHIVE_NAME}"
# Create temporary directory with proper structure
mkdir -p /tmp/archive
cp -r . "/tmp/archive/${PROJECT_NAME}-${VERSION}/"
# Remove unwanted files from archive
cd "/tmp/archive/${PROJECT_NAME}-${VERSION}"
rm -rf .git .github bazel-* scripts .gitmodules .gitignore
# Create tar.gz archive
cd /tmp/archive
tar -czf "${ARCHIVE_NAME}" "${PROJECT_NAME}-${VERSION}/"
mv "${ARCHIVE_NAME}" "${GITHUB_WORKSPACE}/"
echo "Archive created: ${ARCHIVE_NAME}"
ls -lh "${GITHUB_WORKSPACE}/${ARCHIVE_NAME}"
- name: Upload release archive
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
PROJECT_NAME="${{ steps.load_config.outputs.project_name }}"
TAG_NAME="${{ steps.get_version.outputs.tag_name }}"
VERSION="${{ steps.get_version.outputs.version }}"
ARCHIVE_NAME="${PROJECT_NAME}-${VERSION}.tar.gz"
echo "Uploading ${ARCHIVE_NAME} to release ${TAG_NAME}..."
gh release upload "${TAG_NAME}" "${ARCHIVE_NAME}" \
--repo "${{ github.repository }}" \
--clobber
echo "Upload completed successfully"
publish:
needs: create-archive
permissions:
contents: write
uses: bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml@v1.0.0
with:
tag_name: ${{ needs.create-archive.outputs.tag_name }}
registry_fork: ${{ needs.create-archive.outputs.bcr_registry_fork }}
attest: false
secrets:
publish_token: ${{ secrets.CI_PAT_TOKEN }}

View File

@ -1,150 +0,0 @@
name: Monthly Sync
on:
schedule:
- cron: "0 0 1 * *" # Monthly on the 1st at 00:00 UTC
workflow_dispatch:
inputs:
force_release:
description: "Force release even if no changes?"
type: boolean
default: false
env:
UPSTREAM_BRANCH: main # Will auto-detect if upstream uses 'master' instead
jobs:
sync-and-release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.CI_PAT_TOKEN }}
- name: Get upstream URL from fork parent
id: get-upstream
run: |
# Get parent repository URL from GitHub API
UPSTREAM_URL=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}" | \
jq -r '.parent.html_url')
if [ -z "$UPSTREAM_URL" ] || [ "$UPSTREAM_URL" = "null" ]; then
echo "Error: Could not get upstream URL. Is this repository a fork?"
exit 1
fi
echo "Upstream URL: $UPSTREAM_URL"
echo "upstream_url=$UPSTREAM_URL" >> $GITHUB_OUTPUT
- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Detect upstream default branch
id: detect-branch
run: |
UPSTREAM_URL="${{ steps.get-upstream.outputs.upstream_url }}"
# Add upstream remote
git remote add upstream "$UPSTREAM_URL"
git fetch upstream
# Try to detect default branch
UPSTREAM_BRANCH=$(git remote show upstream | grep 'HEAD branch' | cut -d' ' -f5)
if [ -z "$UPSTREAM_BRANCH" ]; then
# Fallback to env default
UPSTREAM_BRANCH="${{ env.UPSTREAM_BRANCH }}"
fi
echo "Detected upstream branch: $UPSTREAM_BRANCH"
echo "branch=$UPSTREAM_BRANCH" >> $GITHUB_OUTPUT
- name: Merge upstream changes
run: |
UPSTREAM_BRANCH="${{ steps.detect-branch.outputs.branch }}"
CURRENT_BRANCH=$(git branch --show-current)
echo "Current branch: $CURRENT_BRANCH"
echo "Syncing from upstream branch: $UPSTREAM_BRANCH"
# Merge upstream changes
git merge upstream/$UPSTREAM_BRANCH --no-edit || {
echo "Merge conflict detected. Manual intervention required."
exit 1
}
# Push merged changes to current branch
git push origin $CURRENT_BRANCH
- name: Check changes and generate tag
id: check
run: |
# Get the last tag
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
# Get current and last tag commit hashes
CURRENT_HASH=$(git rev-parse HEAD)
if [ -n "$LAST_TAG" ]; then
LAST_TAG_HASH=$(git rev-parse "$LAST_TAG^{}")
else
LAST_TAG_HASH=""
fi
echo "Last Tag: $LAST_TAG ($LAST_TAG_HASH)"
echo "Current: $CURRENT_HASH"
# Skip if no changes and not forced
if [ "$CURRENT_HASH" == "$LAST_TAG_HASH" ] && [ "${{ inputs.force_release }}" != "true" ]; then
echo "No changes detected. Skipping release."
echo "release_needed=false" >> $GITHUB_OUTPUT
exit 0
fi
# Generate pseudo-version: v0.0.0-YYYYMMDD-commitHash
SHORT_HASH=$(git rev-parse --short=7 HEAD)
DATE_STR=$(date +'%Y%m%d')
NEW_TAG="v0.0.0-${DATE_STR}-${SHORT_HASH}"
# Check if tag already exists
if git rev-parse "$NEW_TAG" >/dev/null 2>&1; then
echo "Tag $NEW_TAG already exists. Skipping."
echo "release_needed=false" >> $GITHUB_OUTPUT
exit 0
fi
echo "New release will be: $NEW_TAG"
echo "release_needed=true" >> $GITHUB_OUTPUT
echo "new_tag=$NEW_TAG" >> $GITHUB_OUTPUT
- name: Create GitHub release
if: steps.check.outputs.release_needed == 'true'
env:
GH_TOKEN: ${{ secrets.CI_PAT_TOKEN }}
run: |
TAG_NAME="${{ steps.check.outputs.new_tag }}"
UPSTREAM_URL="${{ steps.get-upstream.outputs.upstream_url }}"
echo "Creating tag and release: $TAG_NAME"
# Create and push tag
git tag "$TAG_NAME"
git push origin "$TAG_NAME"
# Create GitHub release
COMMIT_HASH=$(git rev-parse HEAD)
RELEASE_NOTES="Synced with upstream $UPSTREAM_URL on $(date +'%Y-%m-%d').
Commit: $COMMIT_HASH"
gh release create "$TAG_NAME" \
--repo ${{ github.repository }} \
--title "Auto Release $TAG_NAME" \
--notes "$RELEASE_NOTES" \
--generate-notes

View File

@ -1,6 +1,6 @@
module(
name = "iverilog",
version = "0.0.0",
version = "12.0.0",
)
bazel_dep(name = "gperf", version = "3.1")