This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: | |
python-version: [3.9] | |
os: [macOS-latest, ubuntu-latest] | |
development: | |
- name: Non-development | |
value: false | |
- name: Development | |
value: true | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Setup Python environment | |
uses: Chia-Network/actions/setup-python@main | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: ./.github/actions/install | |
with: | |
python-version: ${{ matrix.python-version }} | |
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 | |
run: | | |
sh install-gui.sh | |
test_scripts_in_docker: | |
name: Test Install Scripts ${{ matrix.distribution.name }} | |
runs-on: ${{ matrix.os }} | |
container: ${{ matrix.distribution.url }} | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: | |
os: [ubuntu-latest] | |
distribution: | |
- name: amazonlinux:2 | |
type: amazon | |
url: "docker://amazonlinux:2" | |
- name: arch:latest | |
type: arch | |
url: "docker://archlinux:latest" | |
- name: centos:7 | |
type: centos | |
url: "docker://centos:7" | |
# commented out until we decide what to do with this, it fails consistently | |
# - name: centos:8 | |
# type: centos | |
# url: "docker://centos:8" | |
- 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:34 | |
type: fedora | |
# (34, 3.9) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+34&start=0 | |
url: "docker://fedora:34" | |
- name: fedora:35 | |
type: fedora | |
# (35, 3.10) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+35&start=0 | |
url: "docker://fedora:35" | |
- name: fedora:36 | |
type: fedora | |
# (36, 3.10) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+36&start=0 | |
url: "docker://fedora:36" | |
- name: rockylinux:8 | |
type: rocky | |
url: "docker://rockylinux:8" | |
- 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" | |
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 CentOS | |
if: ${{ matrix.distribution.type == 'centos' }} | |
# Installing Git from yum brings [email protected] which doesn't work on actions/checkout. | |
# So install [email protected] from source | |
run: | | |
if [ "$(rpm --eval %{centos_ver})" = "8" ]; then | |
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*; | |
fi | |
yum update -y | |
yum install -y sudo gcc autoconf make wget curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel | |
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.29.0.tar.gz | |
tar zxf git-2.29.0.tar.gz | |
pushd git-2.29.0 | |
make configure | |
./configure --prefix=/usr/local | |
make all | |
make install | |
popd | |
- 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 | |
- 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 | |
- 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 | |
- 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@v3 | |
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 |