Merge bitcoin/bitcoin#34805: [30.x] Backports

f788f1e5cc doc: update release notes for v30.x (fanquake)
0f922ed1f9 ci: check macos bundle structure and codesigning (fanquake)
17778c2b63 macdeploy: use plugins dir to find plugins (fanquake)
671980e779 macdeploy: subprocess out to zip rather than shutil.make_archive (fanquake)
e2f6e3a80f ci: bump cirruslabs actions versions (will)
1bc5233c19 ci: Bump GHA actions versions (MarcoFalke)

Pull request description:

  Backports:
  * #34787
  * #34802
  * #34815

ACKs for top commit:
  willcl-ark:
    ACK f788f1e5cc
  marcofleon:
    lgtm ACK f788f1e5cc

Tree-SHA512: a4fffdd3b39f9cfce046aea454fe5688f48a20d4055f7e5aaeb80db025fc2f400e34d936fdb59dc0f2b8cd014b86dc4b4eb2f21696b02b59551a0b70e7f192c8
This commit is contained in:
merge-script
2026-03-18 09:15:01 +08:00
7 changed files with 29 additions and 18 deletions

View File

@@ -20,7 +20,7 @@ runs:
esac
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
with:
# Use host network to allow access to cirrus gha cache running on the host
driver-opts: |
@@ -28,7 +28,7 @@ runs:
# This is required to allow buildkit to access the actions cache
- name: Expose actions cache variables
uses: actions/github-script@v6
uses: actions/github-script@v8
with:
script: |
Object.keys(process.env).forEach(function (key) {

View File

@@ -5,7 +5,7 @@ runs:
steps:
- name: Restore Ccache cache
id: ccache-cache
uses: cirruslabs/cache/restore@v4
uses: cirruslabs/cache/restore@v5
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ env.CONTAINER_NAME }}-${{ github.run_id }}
@@ -14,7 +14,7 @@ runs:
- name: Restore depends sources cache
id: depends-sources
uses: cirruslabs/cache/restore@v4
uses: cirruslabs/cache/restore@v5
with:
path: ${{ env.SOURCES_PATH }}
key: depends-sources-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}
@@ -23,7 +23,7 @@ runs:
- name: Restore built depends cache
id: depends-built
uses: cirruslabs/cache/restore@v4
uses: cirruslabs/cache/restore@v5
with:
path: ${{ env.BASE_CACHE }}
key: depends-built-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}
@@ -32,7 +32,7 @@ runs:
- name: Restore previous releases cache
id: previous-releases
uses: cirruslabs/cache/restore@v4
uses: cirruslabs/cache/restore@v5
with:
path: ${{ env.PREVIOUS_RELEASES_DIR }}
key: previous-releases-${{ env.CONTAINER_NAME }}-${{ env.PREVIOUS_RELEASES_HASH }}

View File

@@ -11,28 +11,28 @@ runs:
echo "previous releases direct cache hit to primary key: ${{ env.previous-releases-cache-hit }}"
- name: Save Ccache cache
uses: cirruslabs/cache/save@v4
uses: cirruslabs/cache/save@v5
if: ${{ (github.event_name == 'push') && (github.ref_name == github.event.repository.default_branch) }}
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ env.CONTAINER_NAME }}-${{ github.run_id }}
- name: Save depends sources cache
uses: cirruslabs/cache/save@v4
uses: cirruslabs/cache/save@v5
if: ${{ (github.event_name == 'push') && (github.ref_name == github.event.repository.default_branch) && (env.depends-sources-cache-hit != 'true') }}
with:
path: ${{ env.SOURCES_PATH }}
key: depends-sources-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}
- name: Save built depends cache
uses: cirruslabs/cache/save@v4
uses: cirruslabs/cache/save@v5
if: ${{ (github.event_name == 'push') && (github.ref_name == github.event.repository.default_branch) && (env.depends-built-cache-hit != 'true' )}}
with:
path: ${{ env.BASE_CACHE }}
key: depends-built-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}
- name: Save previous releases cache
uses: cirruslabs/cache/save@v4
uses: cirruslabs/cache/save@v5
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 }}

View File

@@ -167,7 +167,7 @@ jobs:
- name: Restore Ccache cache
id: ccache-cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ github.job }}-${{ matrix.job-type }}-ccache-${{ github.run_id }}
@@ -179,7 +179,7 @@ jobs:
FILE_ENV: ${{ matrix.file-env }}
- name: Save Ccache cache
uses: actions/cache/save@v4
uses: actions/cache/save@v5
if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
with:
path: ${{ env.CCACHE_DIR }}
@@ -246,7 +246,7 @@ jobs:
key: ${{ github.job }}-vcpkg-tools
- name: Restore vcpkg binary cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
id: vcpkg-binary-cache
with:
path: ~/AppData/Local/vcpkg/archives
@@ -257,7 +257,7 @@ jobs:
cmake -B build -Werror=dev --preset vs2022 -DCMAKE_TOOLCHAIN_FILE="${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" ${{ matrix.generate-options }}
- name: Save vcpkg binary cache
uses: actions/cache/save@v4
uses: actions/cache/save@v5
if: github.event_name != 'pull_request' && steps.vcpkg-binary-cache.outputs.cache-hit != 'true' && matrix.job-type == 'standard'
with:
path: ~/AppData/Local/vcpkg/archives
@@ -358,7 +358,7 @@ jobs:
uses: ./.github/actions/save-caches
- name: Upload built executables
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: x86_64-w64-mingw32-executables-${{ github.run_id }}
path: |
@@ -380,7 +380,7 @@ jobs:
- *CHECKOUT
- name: Download built executables
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
name: x86_64-w64-mingw32-executables-${{ github.run_id }}

View File

@@ -165,6 +165,14 @@ if [ "$RUN_CHECK_DEPS" = "true" ]; then
"${BASE_ROOT_DIR}/contrib/devtools/check-deps.sh" "${BASE_BUILD_DIR}"
fi
if [[ "$CI_OS_NAME" == "macos" && "${GOAL}" = "install deploy" ]]; then
unzip "${BASE_BUILD_DIR}/Bitcoin-Core.zip" -d "${BASE_BUILD_DIR}/deploy"
if ! ( codesign --verify "${BASE_BUILD_DIR}/deploy/Bitcoin-Qt.app" ); then
echo "Codesigning failed."
false
fi
fi
if [ "$RUN_UNIT_TESTS" = "true" ]; then
DIR_UNIT_TEST_DATA="${DIR_UNIT_TEST_DATA}" \
LD_LIBRARY_PATH="${DEPENDS_DIR}/${HOST}/lib" \

View File

@@ -160,7 +160,7 @@ class DeploymentInfo(object):
def detectQtPath(self, frameworkDirectory: str):
parentDir = os.path.dirname(frameworkDirectory)
if os.path.exists(os.path.join(parentDir, "share", "qt", "translations")):
if os.path.exists(os.path.join(parentDir, "share", "qt", "plugins")):
self.qtPath = parentDir
else:
self.qtPath = os.getenv("QTDIR", None)
@@ -499,7 +499,7 @@ if platform.system() == "Darwin":
# ------------------------------------------------
if config.zip is not None:
shutil.make_archive('{}'.format(appname), format='zip', root_dir='dist', base_dir='Bitcoin-Qt.app')
subprocess.check_call(["zip", "-ry", os.path.abspath(appname + ".zip"), 'Bitcoin-Qt.app'], cwd='dist')
# ------------------------------------------------

View File

@@ -65,6 +65,7 @@ Notable changes
- #34627 guix: use a temporary file over sponge, drop moreutils
- #34713 depends: Allow building Qt packages after interruption
- #34754 depends: Qt fixes for GCC 16 compatibility
- #34787 build: fix native macOS deployment
### Test
@@ -97,6 +98,8 @@ Notable changes
- #34344 ci: update GitHub Actions versions
- #34453 ci: Always print low ccache hit rate notice
- #34461 ci: Print verbose build error message in test-each-commit
- #34802 ci: Bump GHA actions versions
- #34815 ci: bump cirruslabs actions versions
Credits
=======