mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2026-08-28 10:05:05 -05:00
b94a3ef1d6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
295 lines
9.0 KiB
YAML
295 lines
9.0 KiB
YAML
name: 🏗️ Test Install Scripts
|
|
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- "**.md"
|
|
branches:
|
|
- "long_lived/**"
|
|
- main
|
|
- "release/**"
|
|
release:
|
|
types: [published]
|
|
pull_request:
|
|
paths-ignore:
|
|
- "**.md"
|
|
branches:
|
|
- "**"
|
|
|
|
concurrency:
|
|
group: ${{ github.event_name == 'pull_request' && format('{0}-{1}', github.workflow_ref, github.event.pull_request.number) || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
test_scripts:
|
|
name: Native ${{ matrix.os.emoji }} ${{ matrix.arch.emoji }} ${{ matrix.development.name }} - ${{ matrix.editable.name }}
|
|
runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python:
|
|
- major-dot-minor: "3.12"
|
|
os:
|
|
- name: Linux
|
|
emoji: 🐧
|
|
runs-on:
|
|
arm: ubuntu-24.04-arm
|
|
intel: ubuntu-latest
|
|
matrix: linux
|
|
- name: macOS
|
|
emoji: 🍎
|
|
runs-on:
|
|
arm: macos-15
|
|
intel: ${{ github.repository_owner == 'Chia-Network' && 'macos-13-intel' || 'macos-15-intel' }}
|
|
matrix: macos
|
|
- name: Windows
|
|
emoji: 🪟
|
|
runs-on:
|
|
intel: windows-latest
|
|
matrix: windows
|
|
arch:
|
|
- name: ARM
|
|
emoji: 💪
|
|
matrix: arm
|
|
- name: Intel
|
|
emoji: 🌀
|
|
matrix: intel
|
|
development:
|
|
- name: Non-dev
|
|
value: false
|
|
- name: Dev
|
|
value: true
|
|
editable:
|
|
- name: Non-edit
|
|
value: false
|
|
matrix: non-editable
|
|
- name: Edit
|
|
value: true
|
|
matrix: editable
|
|
exclude:
|
|
- os:
|
|
matrix: windows
|
|
arch:
|
|
matrix: arm
|
|
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- name: Setup Python environment
|
|
uses: Chia-Network/actions/setup-python@main
|
|
with:
|
|
python-version: ${{ matrix.python.major-dot-minor }}
|
|
|
|
- name: Setup Node per .nvmrc in GUI
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version-file: chia-blockchain-gui/.nvmrc
|
|
|
|
- name: Remove GUI submodule for gui script testing
|
|
env:
|
|
GUI_DIRECTORY: chia-blockchain-gui
|
|
run: |
|
|
[ -d "${GUI_DIRECTORY}" ]
|
|
rm -rf "${GUI_DIRECTORY}"
|
|
|
|
- uses: ./.github/actions/install
|
|
with:
|
|
python-version: ${{ matrix.python.major-dot-minor }}
|
|
development: ${{ matrix.development.value }}
|
|
editable: ${{ matrix.editable.value }}
|
|
do-system-installs: true
|
|
|
|
- uses: chia-network/actions/activate-venv@main
|
|
|
|
- name: Run chia --help
|
|
run: |
|
|
chia --help
|
|
|
|
- name: Run install-gui script (Linux, macOS)
|
|
if: matrix.os.matrix != 'windows'
|
|
run: |
|
|
sh install-gui.sh
|
|
|
|
- name: Run install-gui script (Windows)
|
|
if: matrix.os.matrix == 'windows'
|
|
shell: pwsh
|
|
run: |
|
|
./Install-gui.ps1
|
|
|
|
- name: Collect editable info
|
|
id: editable-info
|
|
shell: bash
|
|
run: |
|
|
echo "pre-edit-version=$(chia version)" >> "$GITHUB_OUTPUT"
|
|
echo '__version__ = "shooby-doowah"' >> chia/__init__.py
|
|
echo "post-edit-version=$(chia version)" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Check editable
|
|
if: matrix.editable.matrix == 'editable'
|
|
shell: bash
|
|
env:
|
|
PRE_VERSION: ${{ steps.editable-info.outputs.pre-edit-version }}
|
|
POST_VERSION: ${{ steps.editable-info.outputs.post-edit-version }}
|
|
run: |
|
|
[ "$POST_VERSION" = "shooby-doowah" ] && [ "$PRE_VERSION" != "shooby-doowah" ]
|
|
|
|
- name: Check non-editable
|
|
if: matrix.editable.matrix == 'non-editable'
|
|
shell: bash
|
|
env:
|
|
PRE_VERSION: ${{ steps.editable-info.outputs.pre-edit-version }}
|
|
POST_VERSION: ${{ steps.editable-info.outputs.post-edit-version }}
|
|
run: |
|
|
[ "$POST_VERSION" != "shooby-doowah" ] && [ "$PRE_VERSION" = "$POST_VERSION" ]
|
|
|
|
test_scripts_in_docker:
|
|
name: Docker ${{ matrix.distribution.name }} ${{ matrix.arch.name }}
|
|
runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }}
|
|
container: ${{ matrix.distribution.url }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os:
|
|
- name: Linux
|
|
matrix: linux
|
|
runs-on:
|
|
intel: ubuntu-latest
|
|
arm: ubuntu-24.04-arm
|
|
distribution:
|
|
- name: amazonlinux:2023
|
|
type: amazon
|
|
url: "docker://amazonlinux:2023"
|
|
- name: arch:latest
|
|
type: arch
|
|
url: "docker://archlinux:latest"
|
|
- name: debian:bookworm
|
|
type: debian
|
|
# https://packages.debian.org/bookworm/python/python3 (3.11)
|
|
url: "docker://debian:bookworm"
|
|
- name: debian:trixie
|
|
type: debian
|
|
# https://packages.debian.org/trixie/python/python3 (3.13)
|
|
url: "docker://debian:trixie"
|
|
- name: fedora:41
|
|
type: fedora
|
|
url: "docker://fedora:41"
|
|
- name: fedora:42
|
|
type: fedora
|
|
url: "docker://fedora:42"
|
|
- name: rockylinux:8
|
|
type: rocky
|
|
url: "docker://rockylinux:8"
|
|
- name: rockylinux:9
|
|
type: rocky
|
|
url: "docker://rockylinux:9"
|
|
- name: ubuntu:jammy (22.04)
|
|
type: ubuntu
|
|
# https://packages.ubuntu.com/jammy/python3 (22.04, 3.10)
|
|
url: "docker://ubuntu:jammy"
|
|
- name: ubuntu:noble (24.04)
|
|
type: ubuntu
|
|
# https://packages.ubuntu.com/noble/python3 (24.04, 3.12)
|
|
url: "docker://ubuntu:noble"
|
|
arch:
|
|
- name: ARM64
|
|
matrix: arm
|
|
- name: Intel
|
|
matrix: intel
|
|
exclude:
|
|
- distribution:
|
|
type: arch
|
|
# TODO: arch brought in glibc 2.41 which became more sensitive around execstack
|
|
# which is enabled in libbladebit. fixes will be made to main and this
|
|
# should be re-enabled then.
|
|
# arch:
|
|
# matrix: arm
|
|
|
|
steps:
|
|
- name: Prepare Amazon Linux
|
|
if: ${{ matrix.distribution.type == 'amazon' }}
|
|
run: |
|
|
dnf update -y
|
|
dnf search python3.12
|
|
dnf install git python3.12 -y
|
|
|
|
- name: Prepare Arch
|
|
if: ${{ matrix.distribution.type == 'arch' }}
|
|
run: |
|
|
pacman --noconfirm -Syu
|
|
pacman --noconfirm -S base git openssl-1.1
|
|
# The behavior we follow in install.sh is unique with Arch in that
|
|
# we leave it to the user to install the appropriate version of python,
|
|
# so we need to install python here in order for the test to succeed.
|
|
pacman --noconfirm -U --needed https://archive.archlinux.org/packages/p/python/python-3.13.5-1-x86_64.pkg.tar.zst
|
|
|
|
- name: Prepare Debian
|
|
if: ${{ matrix.distribution.type == 'debian' }}
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: |
|
|
apt-get --yes update
|
|
apt-get install --yes git lsb-release python3-venv
|
|
|
|
- name: Prepare Fedora
|
|
if: ${{ matrix.distribution.type == 'fedora' }}
|
|
run: |
|
|
yum install --assumeyes git python
|
|
|
|
- name: Set rocky8 repo
|
|
if: ${{ matrix.distribution.name == 'rockylinux:8' }}
|
|
run: |
|
|
sed -i -e 's|^mirrorlist=|#mirrorlist=|' -e 's|^#baseurl=http://dl\.rockylinux\.org/|baseurl=https://dl.rockylinux.org/|' /etc/yum.repos.d/Rocky-*.repo
|
|
|
|
- name: Set rocky9 repo
|
|
if: ${{ matrix.distribution.name == 'rockylinux:9' }}
|
|
run: |
|
|
sed -i -e 's|^mirrorlist=|#mirrorlist=|' -e 's|^#baseurl=http://dl\.rockylinux\.org/|baseurl=https://dl.rockylinux.org/|' /etc/yum.repos.d/rocky-*.repo
|
|
|
|
- name: Prepare Rocky
|
|
if: ${{ matrix.distribution.type == 'rocky' }}
|
|
run: |
|
|
dnf update -y
|
|
dnf search python3.12
|
|
dnf install git python3.12 -y
|
|
|
|
- name: Prepare Ubuntu
|
|
if: ${{ matrix.distribution.type == 'ubuntu' }}
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: |
|
|
apt-get --yes update
|
|
apt-get install --yes git lsb-release
|
|
MINIMUM=3.10
|
|
if ! apt-get satisfy --yes "python3-venv (>= ${MINIMUM})"
|
|
then
|
|
apt-get install --yes python${MINIMUM}-venv
|
|
fi
|
|
|
|
- name: Add safe git directory
|
|
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
|
|
# after installing git so we use that copy
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: ./.github/actions/install
|
|
with:
|
|
development: true
|
|
do-system-installs: true
|
|
|
|
- uses: chia-network/actions/activate-venv@main
|
|
|
|
- name: Run chia --help
|
|
run: |
|
|
chia --help
|