Skip to content

GHA CI migration#1553

Open
tomt1664 wants to merge 4 commits into
ElementsProject:elements-23.xfrom
tomt1664:gha_ci_migration
Open

GHA CI migration#1553
tomt1664 wants to merge 4 commits into
ElementsProject:elements-23.xfrom
tomt1664:gha_ci_migration

Conversation

@tomt1664
Copy link
Copy Markdown
Member

Migration of Elements CI from Cirrus (which is closing 1st June) to Github actions.

Notes:

GHA runners have IPV6 disabled in their linux containers. So feature_proxy.py and rpc_blind.py --ipv6 disabled for these, as in bitcoin/bitcoin#30193

windows-2019 is being deprecated and no runners appear to be readily available. actions/runner-images#12045 (consider changing to windows-2022) for win64-msvc jobs.

previous-releases requires a persistent self-hosted runner. This job was being skipped by Cirrus (with No public persistent worker pools found!).

@tomt1664 tomt1664 force-pushed the gha_ci_migration branch 2 times, most recently from 7814a9d to a1cb489 Compare May 26, 2026 13:44
@delta1
Copy link
Copy Markdown
Member

delta1 commented May 26, 2026

Seeing a failure on the macos 13 task which looks git related, not sure if that's what's stopping the other tasks from running?

@tomt1664 tomt1664 force-pushed the gha_ci_migration branch from a1cb489 to 9b065d5 Compare May 26, 2026 14:45
@tomt1664
Copy link
Copy Markdown
Member Author

Squashed all the commits.

The failure seems to be due to the Merge base branch step which apparently not be needed with actions/checkout@v4
I'll check. All pass (except for the win64-msvc jobs) on push.

@tomt1664 tomt1664 force-pushed the gha_ci_migration branch from afdeecb to 9cd01a1 Compare June 1, 2026 13:37
@tomt1664
Copy link
Copy Markdown
Member Author

tomt1664 commented Jun 1, 2026

All jobs should now pass.

previous-releases disabled (commented out, but left for future re-enablement).

@tomt1664 tomt1664 changed the base branch from master to elements-23.x June 1, 2026 16:19
@tomt1664 tomt1664 force-pushed the gha_ci_migration branch from 9cd01a1 to 9247676 Compare June 1, 2026 16:23
Copy link
Copy Markdown
Member

@delta1 delta1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a few comments, nothing major

if: ${{ (github.event_name == 'push') && (github.ref_name == github.event.repository.default_branch) && (env.previous-releases-cache-hit != 'true' )}}
with:
path: ${{ env.PREVIOUS_RELEASES_DIR }}
key: previous-releases-${{ env.CONTAINER_NAME }}-${{ env.PREVIOUS_RELEASES_HASH }}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

configure-docker, configure-environment, restore-caches, and save-caches are never referenced in ci.yml. Are they necessary? Caching seems to be covered by actions/cache/save and restore?

Comment thread .github/workflows/ci.yml
runs-on: ${{ github.repository == 'ElementsProject/elements' && fromJSON('["self-hosted","linux","x64"]') || 'ubuntu-latest' }}
timeout-minutes: 180
env:
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this job not also need to exclude feature_proxy and feature_bind ?

Comment thread .github/workflows/ci.yml

# -------------------------------------------------------------------------
# Win64 native MSVC - Short running functional tests
# Runner: windows-2019 (has VS 2019, equivalent to cirrusci/windowsservercore:visualstudio2019)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: The windows 2019 comments are outdated now

Comment thread .github/workflows/ci.yml
# Win64 native MSVC - Short running functional tests
# Runner: windows-2019 (has VS 2019, equivalent to cirrusci/windowsservercore:visualstudio2019)
# -------------------------------------------------------------------------
win64-msvc-short:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

win64-msvc-short and win64-msvc-long repeat identical Qt build, vcpkg install, Python install, and MSVC build steps. It would be nice to extract these into a common reusable workflow to remove the duplication, but this can be done in a follow-up

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might as well combine them now - time limit on GHA is 6 hours.

export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
export GOAL=""
export BITCOIN_CONFIG="" No newline at end of file
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: needs a newline at end of file

@delta1
Copy link
Copy Markdown
Member

delta1 commented Jun 2, 2026

Just waiting on CI to finish

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants