Skip to content

fine, we can just retry for known cases #26039

fine, we can just retry for known cases

fine, we can just retry for known cases #26039

name: 🏗️ Test Install Scripts
on:
push:
paths-ignore:
- "**.md"
branches:
- "long_lived/**"
- main
- "release/**"
release:
types: [published]
pull_request:
paths-ignore:
- "**.md"
branches:
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}-${{ (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/long_lived/')) && github.sha || '' }}
cancel-in-progress: true
jobs:
test_scripts:
name: Test Install Scripts - ${{ matrix.development.name }}
runs-on: ${{ matrix.os.runs-on }}
strategy:
fail-fast: false
matrix:
python:
- major-dot-minor: "3.10"
os:
- runs-on: macos-latest
matrix: macos
- runs-on: ubuntu-latest
matrix: linux
- runs-on: windows-latest
matrix: windows
development:
- name: Non-development
value: false
- name: Development
value: true
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python environment
uses: Chia-Network/actions/setup-python@main
with:
python-version: ${{ matrix.python.major-dot-minor }}
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major-dot-minor }}
development: ${{ matrix.development.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'
run: |
./Install-gui.ps1
test_scripts_in_docker:
name: Test Install Scripts ${{ 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: [linux, arm64]
distribution:
- name: amazonlinux:2023
type: amazon
url: "docker://amazonlinux:2023"
- name: arch:latest
type: arch
url: "docker://archlinux:latest"
- name: debian:bullseye
type: debian
# https://packages.debian.org/bullseye/python/python3 (3.9)
url: "docker://debian:bullseye"
- name: debian:bookworm
type: debian
# https://packages.debian.org/bookworm/python/python3 (3.11)
url: "docker://debian:bookworm"
- name: fedora:37
type: fedora
# (37, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+37&start=0
url: "docker://fedora:37"
- name: fedora:38
type: fedora
# (38, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+38&start=0
url: "docker://fedora:38"
- name: rockylinux:8
type: rocky
url: "docker://rockylinux:8"
- name: rockylinux:9
type: rocky
url: "docker://rockylinux:9"
- name: ubuntu:focal (20.04)
type: ubuntu
# https://packages.ubuntu.com/focal/python3 (20.04, 3.8)
url: "docker://ubuntu:focal"
- name: ubuntu:jammy (22.04)
type: ubuntu
# https://packages.ubuntu.com/jammy/python3 (22.04, 3.10)
url: "docker://ubuntu:jammy"
arch:
- name: ARM64
matrix: arm
- name: Intel
matrix: intel
exclude:
- distribution:
type: arch
arch:
matrix: arm
steps:
- name: Prepare Amazon Linux
if: ${{ matrix.distribution.type == 'amazon' }}
run: |
yum install --assumeyes git sudo
- name: Prepare Arch
if: ${{ matrix.distribution.type == 'arch' }}
run: |
pacman --noconfirm -Syu
pacman --noconfirm -S base git sudo 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.9.9-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 sudo python3-venv
- name: Prepare Fedora
if: ${{ matrix.distribution.type == 'fedora' }}
run: |
yum install --assumeyes git
- name: Prepare Rocky
if: ${{ matrix.distribution.type == 'rocky' }}
run: |
yum install --assumeyes git sudo python39
- name: Prepare Ubuntu
if: ${{ matrix.distribution.type == 'ubuntu' }}
env:
DEBIAN_FRONTEND: noninteractive
run: |
# for bionic
apt-get --yes update
apt-get install --yes software-properties-common
add-apt-repository --yes ppa:git-core/ppa
apt-get --yes update
apt-get install --yes git lsb-release sudo python3-venv
- 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@v4
with:
fetch-depth: 0
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python-version }}
development: true
do-system-installs: true
- uses: chia-network/actions/activate-venv@main
- name: Run chia --help
run: |
chia --help