mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-28 17:27:36 +00:00
## Why this should be merged #51 had a bug when checking whether or not to open a PR. I was originally blocking everything if _not_ on main instead of doing something if on it. The [manually dispatched run therefore didn't open a PR as expected](https://github.com/ava-labs/libevm/actions/runs/11299366394/job/31430160561). ## How this works Change `!=` to `==` ## How this was tested n/a Signed-off-by: Arran Schlosberg <519948+ARR4N@users.noreply.github.com>
81 lines
3.1 KiB
YAML
81 lines
3.1 KiB
YAML
name: Rename Go module
|
|
|
|
on:
|
|
# During development, the next two lines MAY be enabled to have the PR
|
|
# automatically run this workflow for inspection of the resulting branch.
|
|
# However, they MUST be disabled again before merging otherwise *all* PRs will
|
|
# run this.
|
|
#
|
|
# pull_request:
|
|
# branches: [ main ]
|
|
workflow_dispatch:
|
|
inputs:
|
|
source_commit:
|
|
description: 'Upstream commit on which to base module renaming'
|
|
required: true
|
|
type: string
|
|
default: '2bd6bd01d2e8561dd7fc21b631f4a34ac16627a1'
|
|
|
|
jobs:
|
|
rename-module:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
source_commit: "${{ inputs.source_commit || '2bd6bd01d2e8561dd7fc21b631f4a34ac16627a1' }}"
|
|
# env variables cannot reference others so we have to duplicate the ||
|
|
output_branch: "${{ github.ref_name }}_auto-rename-module-${{ inputs.source_commit || '2bd6bd01d2e8561dd7fc21b631f4a34ac16627a1' }}"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # everything
|
|
fetch-tags: true
|
|
|
|
- name: Check out source commit
|
|
run: git checkout ${{ env.source_commit }}
|
|
|
|
- name: Globally update module name
|
|
run: |
|
|
go mod edit -module github.com/ava-labs/libevm;
|
|
find . -iname '*.go' -o -iname '*.txt' | xargs sed -i -E \
|
|
's|(["`]github\.com/)ethereum/go-ethereum|\1ava-labs/libevm|g';
|
|
|
|
- name: Remnant references
|
|
run: |
|
|
find . -type f | \
|
|
xargs grep -In github.com/ethereum/go-ethereum | \
|
|
grep -v "https://github.com/ethereum/go-ethereum"
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: 1.21.4
|
|
|
|
- name: Smoke tests
|
|
# `go list` shows us the module name and grep will non-zero exit on mismatch
|
|
# `go build` is a rudimentary but broad test of correctness
|
|
# The explicitly tested packages are edge cases:
|
|
# - bind generates tests and a go.mod on the fly
|
|
# - rlpgen has testdata with imports that need updating
|
|
run: |
|
|
go list . | grep ava-labs/libevm;
|
|
go build ./...;
|
|
go test ./accounts/abi/bind ./rlp/rlpgen
|
|
|
|
- name: Commit to new branch
|
|
uses: devops-infra/action-commit-push@8bc2ff9f9de7aa2a7581fc7e5b6401c04cab54c7
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
target_branch: ${{ env.output_branch }}
|
|
force: true
|
|
commit_prefix: "[AUTO] rename Go module + update internal import paths"
|
|
|
|
- name: Open PR to "renamed-go-module" iff workflow dispatched on "main"
|
|
# If we are changing the way in which we manage module renaming then it
|
|
# MUST go through PR review to main; only then can it open PRs.
|
|
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main'
|
|
uses: devops-infra/action-pull-request@v0.5.5
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
source_branch: ${{ env.output_branch }}
|
|
target_branch: renamed-go-module
|
|
title: "[AUTO] Rename upstream Go module at `${{ env.source_commit }}`"
|
|
body: "_PR generated by GitHub Action_"
|