Bootstrapping #775
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: Bootstrapping | |
on: | |
# This Workflow can be triggered manually | |
workflow_dispatch: | |
workflow_call: | |
schedule: | |
# nightly at 2:16 AM | |
- cron: '16 2 * * *' | |
concurrency: | |
group: bootstrap-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} | |
cancel-in-progress: true | |
jobs: | |
distros-clingo-sources: | |
runs-on: ubuntu-latest | |
container: ${{ matrix.image }} | |
strategy: | |
matrix: | |
image: ["fedora:latest", "opensuse/leap:latest"] | |
steps: | |
- name: Setup Fedora | |
if: ${{ matrix.image == 'fedora:latest' }} | |
run: | | |
dnf install -y \ | |
bzip2 curl file gcc-c++ gcc gcc-gfortran git gzip \ | |
make patch unzip which xz python3 python3-devel tree \ | |
cmake bison bison-devel libstdc++-static | |
- name: Setup OpenSUSE | |
if: ${{ matrix.image == 'opensuse/leap:latest' }} | |
run: | | |
# Harden CI by applying the workaround described here: https://www.suse.com/support/kb/doc/?id=000019505 | |
zypper update -y || zypper update -y | |
zypper install -y \ | |
bzip2 curl file gcc-c++ gcc gcc-fortran tar git gpg2 gzip \ | |
make patch unzip which xz python3 python3-devel tree \ | |
cmake bison | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
with: | |
fetch-depth: 0 | |
- name: Bootstrap clingo | |
run: | | |
source share/spack/setup-env.sh | |
spack bootstrap disable github-actions-v0.5 | |
spack bootstrap disable github-actions-v0.4 | |
spack external find cmake bison | |
spack -d solve zlib | |
tree ~/.spack/bootstrap/store/ | |
clingo-sources: | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
matrix: | |
runner: ['macos-13', 'macos-14', "ubuntu-latest", "windows-latest"] | |
steps: | |
- name: Setup macOS | |
if: ${{ matrix.runner != 'ubuntu-latest' && matrix.runner != 'windows-latest' }} | |
run: | | |
brew install cmake bison tree | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 | |
with: | |
python-version: "3.12" | |
- name: Bootstrap clingo | |
env: | |
SETUP_SCRIPT_EXT: ${{ matrix.runner == 'windows-latest' && 'ps1' || 'sh' }} | |
SETUP_SCRIPT_SOURCE: ${{ matrix.runner == 'windows-latest' && './' || 'source ' }} | |
USER_SCOPE_PARENT_DIR: ${{ matrix.runner == 'windows-latest' && '$env:userprofile' || '$HOME' }} | |
VALIDATE_LAST_EXIT: ${{ matrix.runner == 'windows-latest' && './share/spack/qa/validate_last_exit.ps1' || '' }} | |
run: | | |
${{ env.SETUP_SCRIPT_SOURCE }}share/spack/setup-env.${{ env.SETUP_SCRIPT_EXT }} | |
spack bootstrap disable github-actions-v0.5 | |
spack bootstrap disable github-actions-v0.4 | |
spack external find --not-buildable cmake bison | |
spack -d solve zlib | |
${{ env.VALIDATE_LAST_EXIT }} | |
tree ${{ env.USER_SCOPE_PARENT_DIR }}/.spack/bootstrap/store/ | |
gnupg-sources: | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
matrix: | |
runner: [ 'macos-13', 'macos-14', "ubuntu-latest" ] | |
steps: | |
- name: Setup macOS | |
if: ${{ matrix.runner != 'ubuntu-latest' }} | |
run: | | |
brew install tree gawk | |
sudo rm -rf $(command -v gpg gpg2) | |
- name: Setup Ubuntu | |
if: ${{ matrix.runner == 'ubuntu-latest' }} | |
run: sudo rm -rf $(command -v gpg gpg2 patchelf) | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
with: | |
fetch-depth: 0 | |
- name: Bootstrap GnuPG | |
run: | | |
source share/spack/setup-env.sh | |
spack solve zlib | |
spack bootstrap disable github-actions-v0.5 | |
spack bootstrap disable github-actions-v0.4 | |
spack -d gpg list | |
tree ~/.spack/bootstrap/store/ | |
from-binaries: | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
matrix: | |
runner: ['macos-13', 'macos-14', "ubuntu-latest"] | |
steps: | |
- name: Setup macOS | |
if: ${{ matrix.runner != 'ubuntu-latest' }} | |
run: | | |
brew install tree | |
# Remove GnuPG since we want to bootstrap it | |
sudo rm -rf /usr/local/bin/gpg | |
- name: Setup Ubuntu | |
if: ${{ matrix.runner == 'ubuntu-latest' }} | |
run: | | |
sudo rm -rf $(which gpg) $(which gpg2) $(which patchelf) | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 | |
with: | |
python-version: | | |
3.8 | |
3.9 | |
3.10 | |
3.11 | |
3.12 | |
- name: Set bootstrap sources | |
run: | | |
source share/spack/setup-env.sh | |
spack bootstrap disable github-actions-v0.4 | |
spack bootstrap disable spack-install | |
- name: Bootstrap clingo | |
run: | | |
set -e | |
for ver in '3.8' '3.9' '3.10' '3.11' '3.12' ; do | |
not_found=1 | |
ver_dir="$(find $RUNNER_TOOL_CACHE/Python -wholename "*/${ver}.*/*/bin" | grep . || true)" | |
if [[ -d "$ver_dir" ]] ; then | |
echo "Testing $ver_dir" | |
if $ver_dir/python --version ; then | |
export PYTHON="$ver_dir/python" | |
not_found=0 | |
old_path="$PATH" | |
export PATH="$ver_dir:$PATH" | |
./bin/spack-tmpconfig -b ./.github/workflows/bin/bootstrap-test.sh | |
export PATH="$old_path" | |
fi | |
fi | |
if (($not_found)) ; then | |
echo Required python version $ver not found in runner! | |
exit 1 | |
fi | |
done | |
- name: Bootstrap GnuPG | |
run: | | |
source share/spack/setup-env.sh | |
spack -d gpg list | |
tree ~/.spack/bootstrap/store/ |