summaryrefslogtreecommitdiff
path: root/.github/workflows/bootstrap.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/bootstrap.yml')
-rw-r--r--.github/workflows/bootstrap.yml367
1 files changed, 107 insertions, 260 deletions
diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml
index 21c1b2f0ba..90b31a098a 100644
--- a/.github/workflows/bootstrap.yml
+++ b/.github/workflows/bootstrap.yml
@@ -13,221 +13,141 @@ concurrency:
cancel-in-progress: true
jobs:
- fedora-clingo-sources:
+ distros-clingo-sources:
runs-on: ubuntu-latest
- container: "fedora:latest"
+ container: ${{ matrix.image }}
+ strategy:
+ matrix:
+ image: ["fedora:latest", "opensuse/leap:latest"]
steps:
- - name: Install dependencies
+ - name: Setup Fedora
+ if: ${{ matrix.image == 'fedora:latest' }}
run: |
dnf install -y \
- bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
+ 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: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- with:
- fetch-depth: 0
- - name: Setup non-root user
- run: |
- # See [1] below
- git config --global --add safe.directory /__w/spack/spack
- useradd spack-test && mkdir -p ~spack-test
- chown -R spack-test . ~spack-test
- - name: Setup repo
- shell: runuser -u spack-test -- bash {0}
- run: |
- git --version
- . .github/workflows/setup_git.sh
- - name: Bootstrap clingo
- shell: runuser -u spack-test -- bash {0}
- 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/
-
- ubuntu-clingo-sources:
- runs-on: ubuntu-latest
- container: "ubuntu:latest"
- steps:
- - name: Install dependencies
- env:
- DEBIAN_FRONTEND: noninteractive
+ - name: Setup OpenSUSE
+ if: ${{ matrix.image == 'opensuse/leap:latest' }}
run: |
- apt-get update -y && apt-get upgrade -y
- apt-get install -y \
- bzip2 curl file g++ gcc gfortran git gnupg2 gzip \
- make patch unzip xz-utils python3 python3-dev tree \
+ # 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@b4ffde65f46336ab88eb53be808477a3936bae11
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
fetch-depth: 0
- - name: Setup non-root user
- run: |
- # See [1] below
- git config --global --add safe.directory /__w/spack/spack
- useradd spack-test && mkdir -p ~spack-test
- chown -R spack-test . ~spack-test
- - name: Setup repo
- shell: runuser -u spack-test -- bash {0}
- run: |
- git --version
- . .github/workflows/setup_git.sh
- name: Bootstrap clingo
- shell: runuser -u spack-test -- bash {0}
run: |
source share/spack/setup-env.sh
+ spack bootstrap disable github-actions-v0.6
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/
- ubuntu-clingo-binaries-and-patchelf:
- runs-on: ubuntu-latest
- container: "ubuntu:latest"
+ clingo-sources:
+ runs-on: ${{ matrix.runner }}
+ strategy:
+ matrix:
+ runner: ['macos-13', 'macos-14', "ubuntu-latest"]
steps:
- - name: Install dependencies
- env:
- DEBIAN_FRONTEND: noninteractive
+ - name: Setup macOS
+ if: ${{ matrix.runner != 'ubuntu-latest' }}
run: |
- apt-get update -y && apt-get upgrade -y
- apt-get install -y \
- bzip2 curl file g++ gcc gfortran git gnupg2 gzip \
- make patch unzip xz-utils python3 python3-dev tree
+ brew install cmake bison tree
- name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
fetch-depth: 0
- - name: Setup non-root user
- run: |
- # See [1] below
- git config --global --add safe.directory /__w/spack/spack
- useradd spack-test && mkdir -p ~spack-test
- chown -R spack-test . ~spack-test
- - name: Setup repo
- shell: runuser -u spack-test -- bash {0}
- run: |
- git --version
- . .github/workflows/setup_git.sh
- - name: Bootstrap clingo
- shell: runuser -u spack-test -- bash {0}
- run: |
- source share/spack/setup-env.sh
- spack -d solve zlib
- tree ~/.spack/bootstrap/store/
-
- opensuse-clingo-sources:
- runs-on: ubuntu-latest
- container: "opensuse/leap:latest"
- steps:
- - name: Install dependencies
- 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@b4ffde65f46336ab88eb53be808477a3936bae11
+ - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
with:
- fetch-depth: 0
- - name: Setup repo
- run: |
- # See [1] below
- git config --global --add safe.directory /__w/spack/spack
- git --version
- . .github/workflows/setup_git.sh
+ python-version: "3.12"
- name: Bootstrap clingo
run: |
source share/spack/setup-env.sh
+ spack bootstrap disable github-actions-v0.6
spack bootstrap disable github-actions-v0.5
- spack bootstrap disable github-actions-v0.4
- spack external find cmake bison
+ spack external find --not-buildable cmake bison
spack -d solve zlib
- tree ~/.spack/bootstrap/store/
+ tree $HOME/.spack/bootstrap/store/
- macos-clingo-sources:
- runs-on: macos-latest
+ gnupg-sources:
+ runs-on: ${{ matrix.runner }}
+ strategy:
+ matrix:
+ runner: [ 'macos-13', 'macos-14', "ubuntu-latest" ]
steps:
- - name: Install dependencies
+ - name: Setup macOS
+ if: ${{ matrix.runner != 'ubuntu-latest' }}
+ run: brew install tree gawk
+ - name: Remove system executables
run: |
- brew install cmake bison@2.7 tree
+ while [ -n "$(command -v gpg gpg2 patchelf)" ]; do
+ sudo rm $(command -v gpg gpg2 patchelf)
+ done
- name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # @v2
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
- python-version: "3.12"
- - name: Bootstrap clingo
+ fetch-depth: 0
+ - name: Bootstrap GnuPG
run: |
source share/spack/setup-env.sh
- export PATH=/usr/local/opt/bison@2.7/bin:$PATH
+ spack solve zlib
+ spack bootstrap disable github-actions-v0.6
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
+ spack -d gpg list
tree ~/.spack/bootstrap/store/
- macos-clingo-binaries:
- runs-on: ${{ matrix.macos-version }}
+ from-binaries:
+ runs-on: ${{ matrix.runner }}
strategy:
matrix:
- macos-version: ['macos-11', 'macos-12']
+ runner: ['macos-13', 'macos-14', "ubuntu-latest"]
steps:
- - name: Install dependencies
- run: |
- brew install tree
- - name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- - name: Bootstrap clingo
+ - name: Setup macOS
+ if: ${{ matrix.runner != 'ubuntu-latest' }}
+ run: brew install tree
+ - name: Remove system executables
run: |
- set -ex
- for ver in '3.7' '3.8' '3.9' '3.10' '3.11' ; do
- not_found=1
- ver_dir="$(find $RUNNER_TOOL_CACHE/Python -wholename "*/${ver}.*/*/bin" | grep . || true)"
- echo "Testing $ver_dir"
- if [[ -d "$ver_dir" ]] ; then
- 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/bootstrap-test.sh
- export PATH="$old_path"
- fi
- fi
- # NOTE: test all pythons that exist, not all do on 12
+ while [ -n "$(command -v gpg gpg2 patchelf)" ]; do
+ sudo rm $(command -v gpg gpg2 patchelf)
done
-
- ubuntu-clingo-binaries:
- runs-on: ubuntu-20.04
- steps:
- name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
fetch-depth: 0
- - name: Setup repo
+ - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
+ with:
+ python-version: |
+ 3.8
+ 3.9
+ 3.10
+ 3.11
+ 3.12
+ 3.13
+ - name: Set bootstrap sources
run: |
- git --version
- . .github/workflows/setup_git.sh
+ source share/spack/setup-env.sh
+ spack bootstrap disable github-actions-v0.5
+ spack bootstrap disable spack-install
- name: Bootstrap clingo
run: |
- set -ex
- for ver in '3.7' '3.8' '3.9' '3.10' '3.11' ; do
+ set -e
+ for ver in '3.8' '3.9' '3.10' '3.11' '3.12' '3.13'; do
not_found=1
ver_dir="$(find $RUNNER_TOOL_CACHE/Python -wholename "*/${ver}.*/*/bin" | grep . || true)"
- echo "Testing $ver_dir"
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/bootstrap-test.sh
+ ./bin/spack-tmpconfig -b ./.github/workflows/bin/bootstrap-test.sh
export PATH="$old_path"
fi
fi
@@ -236,122 +156,49 @@ jobs:
exit 1
fi
done
-
- ubuntu-gnupg-binaries:
- runs-on: ubuntu-latest
- container: "ubuntu:latest"
- steps:
- - name: Install dependencies
- env:
- DEBIAN_FRONTEND: noninteractive
- run: |
- apt-get update -y && apt-get upgrade -y
- apt-get install -y \
- bzip2 curl file g++ gcc patchelf gfortran git gzip \
- make patch unzip xz-utils python3 python3-dev tree
- - name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- with:
- fetch-depth: 0
- - name: Setup non-root user
- run: |
- # See [1] below
- git config --global --add safe.directory /__w/spack/spack
- useradd spack-test && mkdir -p ~spack-test
- chown -R spack-test . ~spack-test
- - name: Setup repo
- shell: runuser -u spack-test -- bash {0}
- run: |
- git --version
- . .github/workflows/setup_git.sh
- name: Bootstrap GnuPG
- shell: runuser -u spack-test -- bash {0}
run: |
source share/spack/setup-env.sh
- spack bootstrap disable github-actions-v0.4
- spack bootstrap disable spack-install
spack -d gpg list
- tree ~/.spack/bootstrap/store/
+ tree $HOME/.spack/bootstrap/store/
+ - name: Bootstrap File
+ run: |
+ source share/spack/setup-env.sh
+ spack -d python share/spack/qa/bootstrap-file.py
+ tree $HOME/.spack/bootstrap/store/
- ubuntu-gnupg-sources:
- runs-on: ubuntu-latest
- container: "ubuntu:latest"
+ windows:
+ runs-on: "windows-latest"
steps:
- - name: Install dependencies
- env:
- DEBIAN_FRONTEND: noninteractive
- run: |
- apt-get update -y && apt-get upgrade -y
- apt-get install -y \
- bzip2 curl file g++ gcc patchelf gfortran git gzip \
- make patch unzip xz-utils python3 python3-dev tree \
- gawk
- name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
fetch-depth: 0
- - name: Setup non-root user
- run: |
- # See [1] below
- git config --global --add safe.directory /__w/spack/spack
- useradd spack-test && mkdir -p ~spack-test
- chown -R spack-test . ~spack-test
- - name: Setup repo
- shell: runuser -u spack-test -- bash {0}
+ - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
+ with:
+ python-version: "3.12"
+ - name: Setup Windows
run: |
- git --version
- . .github/workflows/setup_git.sh
- - name: Bootstrap GnuPG
- shell: runuser -u spack-test -- bash {0}
+ Remove-Item -Path (Get-Command gpg).Path
+ Remove-Item -Path (Get-Command file).Path
+ - name: Bootstrap clingo
run: |
- source share/spack/setup-env.sh
- spack solve zlib
+ ./share/spack/setup-env.ps1
+ spack bootstrap disable github-actions-v0.6
spack bootstrap disable github-actions-v0.5
- spack bootstrap disable github-actions-v0.4
- spack -d gpg list
- tree ~/.spack/bootstrap/store/
-
- macos-gnupg-binaries:
- runs-on: macos-latest
- steps:
- - name: Install dependencies
- run: |
- brew install tree
- # Remove GnuPG since we want to bootstrap it
- sudo rm -rf /usr/local/bin/gpg
- - name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- - name: Bootstrap GnuPG
- run: |
- source share/spack/setup-env.sh
- spack bootstrap disable github-actions-v0.4
- spack bootstrap disable spack-install
- spack -d gpg list
- tree ~/.spack/bootstrap/store/
-
- macos-gnupg-sources:
- runs-on: macos-latest
- steps:
- - name: Install dependencies
- run: |
- brew install gawk tree
- # Remove GnuPG since we want to bootstrap it
- sudo rm -rf /usr/local/bin/gpg
- - name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+ spack external find --not-buildable cmake bison
+ spack -d solve zlib
+ ./share/spack/qa/validate_last_exit.ps1
+ tree $env:userprofile/.spack/bootstrap/store/
- 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
+ ./share/spack/setup-env.ps1
spack -d gpg list
- tree ~/.spack/bootstrap/store/
-
-
-# [1] Distros that have patched git to resolve CVE-2022-24765 (e.g. Ubuntu patching v2.25.1)
-# introduce breaking behaviorso we have to set `safe.directory` in gitconfig ourselves.
-# See:
-# - https://github.blog/2022-04-12-git-security-vulnerability-announced/
-# - https://github.com/actions/checkout/issues/760
-# - http://changelogs.ubuntu.com/changelogs/pool/main/g/git/git_2.25.1-1ubuntu3.3/changelog
+ ./share/spack/qa/validate_last_exit.ps1
+ tree $env:userprofile/.spack/bootstrap/store/
+ - name: Bootstrap File
+ run: |
+ ./share/spack/setup-env.ps1
+ spack -d python share/spack/qa/bootstrap-file.py
+ ./share/spack/qa/validate_last_exit.ps1
+ tree $env:userprofile/.spack/bootstrap/store/