Skip to content

Change Chia Root CA to expire 31 Dec 2037 #33873

Change Chia Root CA to expire 31 Dec 2037

Change Chia Root CA to expire 31 Dec 2037 #33873

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-13' }}
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@v5
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@v5
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