ci: delete bcr ci
This commit is contained in:
parent
8833caf7df
commit
5a8b87aaaa
3
.bazelrc
3
.bazelrc
|
|
@ -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
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"homepage": "https://github.com/MrAMS/iverilog",
|
||||
"maintainers": [
|
||||
{
|
||||
"email": "",
|
||||
"github": "MrAMS",
|
||||
"name": "Qijia Yang"
|
||||
}
|
||||
],
|
||||
"repository": ["github:MrAMS/iverilog"],
|
||||
"versions": [],
|
||||
"yanked_versions": {}
|
||||
}
|
||||
|
|
@ -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"
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"integrity": "",
|
||||
"strip_prefix": "iverilog-{VERSION}",
|
||||
"url": "https://github.com/{OWNER}/{REPO}/releases/download/v{VERSION}/iverilog-{VERSION}.tar.gz"
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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 }}
|
||||
|
|
@ -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
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
module(
|
||||
name = "iverilog",
|
||||
version = "0.0.0",
|
||||
version = "12.0.0",
|
||||
)
|
||||
|
||||
bazel_dep(name = "gperf", version = "3.1")
|
||||
|
|
|
|||
Loading…
Reference in New Issue