mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-02 14:37:42 -03:00
Merge bitcoin/bitcoin#28187: ci: Run "macOS native x86_64" job on GitHub Actions
9658d0dc17
ci: Run "macOS native x86_64" job on GitHub Actions (Hennadii Stepanov) Pull request description: From https://github.com/bitcoin/bitcoin/issues/28098: > Thus, someone would have to sponsor an amount of roughly 5kUSD/mo for those two tasks. > If the goal is to stay on a free plan, I think the only option is GitHub Actions CI. --- **IMPORTANT NOTE**. We currently ship macOS release binaries for both architectures: `x86_64` and `arm64`. If this PR gets merged, only `x86_64` architecture will be tested on CI, which implies some [drawbacks](https://github.com/bitcoin/bitcoin/pull/28187#issuecomment-1658077549). However, it has never been the case that our CI tested both architectures simultaneously. And we hope that GitHub Actions will soon host macOS `arm64` runners. Historically, we moved from `x86_64` to `arm64` in https://github.com/bitcoin/bitcoin/pull/26388 less than a year ago. --- Security concerns: - https://github.com/bitcoin/bitcoin/issues/28098#issuecomment-1651432106 - https://github.com/bitcoin/bitcoin/issues/28098#issuecomment-1651688197 `GITHUB_TOKEN` permissions (from the build log in my personal repo): ``` 2023-07-27T07:30:17.8313534Z ##[group]GITHUB_TOKEN Permissions 2023-07-27T07:30:17.8314113Z Contents: read 2023-07-27T07:30:17.8314608Z Metadata: read 2023-07-27T07:30:17.8314957Z Packages: read 2023-07-27T07:30:17.8315233Z ##[endgroup] ``` Comparison of resources: | Resource | Current, Cirrus CI | Suggested, GitHub Actions | |---|:-:|:-:| | CPU | 4 | 4 \*\* | | RAM, GB | 8 | 14 | **\*\* NOTE**: However, [docs](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) are mentioning: > 3-core CPU (x86_64) ACKs for top commit: MarcoFalke: re-ACK9658d0dc17
🏂 achow101: ACK9658d0dc17
jarolrod: ACK9658d0dc17
Tree-SHA512: 6123e68e6784cdf4e53c3e77b435709261db21f09091af2c22e667d3816a305fffb9d617297a5bc1bda18aaba84a6e210cec6a75c52afa7746a3780a67b69865
This commit is contained in:
commit
b97b05048d
3 changed files with 62 additions and 20 deletions
17
.cirrus.yml
17
.cirrus.yml
|
@ -328,20 +328,3 @@ task:
|
||||||
FILE_ENV: "./ci/test/00_setup_env_mac.sh"
|
FILE_ENV: "./ci/test/00_setup_env_mac.sh"
|
||||||
env:
|
env:
|
||||||
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
|
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
|
||||||
|
|
||||||
task:
|
|
||||||
name: 'macOS 13 native arm64 [gui, sqlite only] [no depends]'
|
|
||||||
macos_instance:
|
|
||||||
# Use latest image, but hardcode version to avoid silent upgrades (and breaks)
|
|
||||||
image: ghcr.io/cirruslabs/macos-ventura-xcode:14.3.1 # https://cirrus-ci.org/guide/macOS
|
|
||||||
<< : *BASE_TEMPLATE
|
|
||||||
check_clang_script:
|
|
||||||
- clang --version
|
|
||||||
brew_install_script:
|
|
||||||
- brew install boost libevent qt@5 miniupnpc libnatpmp ccache zeromq qrencode libtool automake gnu-getopt
|
|
||||||
<< : *MAIN_TEMPLATE
|
|
||||||
env:
|
|
||||||
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
|
|
||||||
CI_USE_APT_INSTALL: "no"
|
|
||||||
PACKAGE_MANAGER_INSTALL: "echo" # Nothing to do
|
|
||||||
FILE_ENV: "./ci/test/00_setup_env_mac_native_arm64.sh"
|
|
||||||
|
|
59
.github/workflows/ci.yml
vendored
Normal file
59
.github/workflows/ci.yml
vendored
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
# Copyright (c) 2023 The Bitcoin Core developers
|
||||||
|
# Distributed under the MIT software license, see the accompanying
|
||||||
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
# See: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request.
|
||||||
|
pull_request:
|
||||||
|
# See: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#push.
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- '**'
|
||||||
|
tags-ignore:
|
||||||
|
- '**'
|
||||||
|
|
||||||
|
env:
|
||||||
|
DANGER_RUN_CI_ON_HOST: 1
|
||||||
|
TEST_RUNNER_TIMEOUT_FACTOR: 40
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
macos-native-x86_64:
|
||||||
|
name: macOS 13 native, x86_64 [no depends, sqlite only, gui]
|
||||||
|
# Use latest image, but hardcode version to avoid silent upgrades (and breaks).
|
||||||
|
# See: https://github.com/actions/runner-images#available-images.
|
||||||
|
runs-on: macos-13
|
||||||
|
|
||||||
|
# No need to run on the read-only mirror, unless it is a PR.
|
||||||
|
if: github.repository != 'bitcoin-core/gui' || github.event_name == 'pull_request'
|
||||||
|
|
||||||
|
timeout-minutes: 120
|
||||||
|
|
||||||
|
env:
|
||||||
|
MAKEJOBS: '-j4'
|
||||||
|
CI_USE_APT_INSTALL: 'no'
|
||||||
|
PACKAGE_MANAGER_INSTALL: 'echo' # Nothing to do
|
||||||
|
FILE_ENV: './ci/test/00_setup_env_mac_native.sh'
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Clang version
|
||||||
|
run: clang --version
|
||||||
|
|
||||||
|
- name: Install Homebrew packages
|
||||||
|
run: brew install boost libevent qt@5 miniupnpc libnatpmp ccache zeromq qrencode libtool automake gnu-getopt
|
||||||
|
|
||||||
|
- name: Set Ccache directory
|
||||||
|
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Ccache cache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{ env.CCACHE_DIR }}
|
||||||
|
key: ${{ github.job }}-ccache-cache-${{ github.run_id }}
|
||||||
|
restore-keys: ${{ github.job }}-ccache-cache
|
||||||
|
|
||||||
|
- name: CI script
|
||||||
|
run: ./ci/test_run_all.sh
|
|
@ -1,18 +1,18 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019-2022 The Bitcoin Core developers
|
# Copyright (c) 2019-present The Bitcoin Core developers
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
export LC_ALL=C.UTF-8
|
export LC_ALL=C.UTF-8
|
||||||
|
|
||||||
export HOST=arm64-apple-darwin
|
export HOST=x86_64-apple-darwin
|
||||||
export PIP_PACKAGES="zmq"
|
export PIP_PACKAGES="zmq"
|
||||||
export GOAL="install"
|
export GOAL="install"
|
||||||
export BITCOIN_CONFIG="--with-gui --with-miniupnpc --with-natpmp --enable-reduce-exports"
|
export BITCOIN_CONFIG="--with-gui --with-miniupnpc --with-natpmp --enable-reduce-exports"
|
||||||
export CI_OS_NAME="macos"
|
export CI_OS_NAME="macos"
|
||||||
export NO_DEPENDS=1
|
export NO_DEPENDS=1
|
||||||
export OSX_SDK=""
|
export OSX_SDK=""
|
||||||
export CCACHE_MAXSIZE=300M
|
export CCACHE_MAXSIZE=400M
|
||||||
export RUN_FUZZ_TESTS=true
|
export RUN_FUZZ_TESTS=true
|
||||||
export FUZZ_TESTS_CONFIG="--exclude banman" # https://github.com/bitcoin/bitcoin/issues/27924
|
export FUZZ_TESTS_CONFIG="--exclude banman" # https://github.com/bitcoin/bitcoin/issues/27924
|
Loading…
Add table
Reference in a new issue