Bootstrapping #568
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: | |
pull_request: | |
branches: | |
- develop | |
- releases/** | |
paths-ignore: | |
# Don't run if we only modified packages in the | |
# built-in repository or documentation | |
- 'var/spack/repos/builtin/**' | |
- '!var/spack/repos/builtin/packages/clingo-bootstrap/**' | |
- '!var/spack/repos/builtin/packages/clingo/**' | |
- '!var/spack/repos/builtin/packages/python/**' | |
- '!var/spack/repos/builtin/packages/re2c/**' | |
- 'lib/spack/docs/**' | |
schedule: | |
# nightly at 2:16 AM | |
- cron: '16 2 * * *' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }} | |
cancel-in-progress: true | |
jobs: | |
fedora-clingo-sources: | |
runs-on: ubuntu-latest | |
container: "fedora:latest" | |
if: github.repository == 'spack/spack' | |
steps: | |
- name: Install dependencies | |
run: | | |
dnf install -y \ | |
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \ | |
make patch unzip which xz python3 python3-devel tree \ | |
cmake bison bison-devel libstdc++-static | |
- name: Checkout | |
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b | |
- 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 | |
git fetch --unshallow | |
. .github/workflows/setup_git.sh | |
- name: Bootstrap clingo | |
shell: runuser -u spack-test -- bash {0} | |
run: | | |
source share/spack/setup-env.sh | |
spack bootstrap untrust github-actions-v0.2 | |
spack external find cmake bison | |
spack -d solve zlib | |
tree ~/.spack/bootstrap/store/ | |
ubuntu-clingo-sources: | |
runs-on: ubuntu-latest | |
container: "ubuntu:latest" | |
if: github.repository == 'spack/spack' | |
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 gfortran git gnupg2 gzip \ | |
make patch unzip xz-utils python3 python3-dev tree \ | |
cmake bison | |
- name: Checkout | |
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b | |
- 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 | |
git fetch --unshallow | |
. .github/workflows/setup_git.sh | |
- name: Bootstrap clingo | |
shell: runuser -u spack-test -- bash {0} | |
run: | | |
source share/spack/setup-env.sh | |
spack bootstrap untrust github-actions-v0.2 | |
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" | |
if: github.repository == 'spack/spack' | |
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 gfortran git gnupg2 gzip \ | |
make patch unzip xz-utils python3 python3-dev tree | |
- name: Checkout | |
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b | |
- 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 | |
git fetch --unshallow | |
. .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" | |
if: github.repository == 'spack/spack' | |
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@2541b1294d2704b0964813337f33b291d3f8596b | |
- name: Setup repo | |
run: | | |
# See [1] below | |
git config --global --add safe.directory /__w/spack/spack | |
git --version | |
git fetch --unshallow | |
. .github/workflows/setup_git.sh | |
- name: Bootstrap clingo | |
run: | | |
source share/spack/setup-env.sh | |
spack bootstrap untrust github-actions-v0.2 | |
spack external find cmake bison | |
spack -d solve zlib | |
tree ~/.spack/bootstrap/store/ | |
macos-clingo-sources: | |
runs-on: macos-latest | |
if: github.repository == 'spack/spack' | |
steps: | |
- name: Install dependencies | |
run: | | |
brew install cmake [email protected] tree | |
- name: Checkout | |
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b | |
- name: Bootstrap clingo | |
run: | | |
source share/spack/setup-env.sh | |
export PATH=/usr/local/opt/[email protected]/bin:$PATH | |
spack bootstrap untrust github-actions-v0.2 | |
spack external find --not-buildable cmake bison | |
spack -d solve zlib | |
tree ~/.spack/bootstrap/store/ | |
macos-clingo-binaries: | |
runs-on: ${{ matrix.macos-version }} | |
strategy: | |
matrix: | |
python-version: ['3.5', '3.6', '3.7', '3.8', '3.9', '3.10'] | |
macos-version: ['macos-10.15', 'macos-11', 'macos-12'] | |
if: github.repository == 'spack/spack' | |
steps: | |
- name: Install dependencies | |
run: | | |
brew install tree | |
- name: Checkout | |
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b | |
- uses: actions/setup-python@c4e89fac7e8767b327bbad6cb4d859eda999cf08 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Bootstrap clingo | |
run: | | |
source share/spack/setup-env.sh | |
spack bootstrap untrust spack-install | |
spack -d solve zlib | |
tree ~/.spack/bootstrap/store/ | |
ubuntu-clingo-binaries: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['2.7', '3.5', '3.6', '3.7', '3.8', '3.9', '3.10'] | |
if: github.repository == 'spack/spack' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b | |
- uses: actions/setup-python@c4e89fac7e8767b327bbad6cb4d859eda999cf08 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Setup repo | |
run: | | |
git --version | |
git fetch --unshallow | |
. .github/workflows/setup_git.sh | |
- name: Bootstrap clingo | |
run: | | |
source share/spack/setup-env.sh | |
spack bootstrap untrust spack-install | |
spack -d solve zlib | |
tree ~/.spack/bootstrap/store/ | |
ubuntu-gnupg-binaries: | |
runs-on: ubuntu-latest | |
container: "ubuntu:latest" | |
if: github.repository == 'spack/spack' | |
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@2541b1294d2704b0964813337f33b291d3f8596b | |
- 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 | |
git fetch --unshallow | |
. .github/workflows/setup_git.sh | |
- name: Bootstrap GnuPG | |
shell: runuser -u spack-test -- bash {0} | |
run: | | |
source share/spack/setup-env.sh | |
spack bootstrap untrust spack-install | |
spack -d gpg list | |
tree ~/.spack/bootstrap/store/ | |
ubuntu-gnupg-sources: | |
runs-on: ubuntu-latest | |
container: "ubuntu:latest" | |
if: github.repository == 'spack/spack' | |
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@2541b1294d2704b0964813337f33b291d3f8596b | |
- 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 | |
git fetch --unshallow | |
. .github/workflows/setup_git.sh | |
- name: Bootstrap GnuPG | |
shell: runuser -u spack-test -- bash {0} | |
run: | | |
source share/spack/setup-env.sh | |
spack solve zlib | |
spack bootstrap untrust github-actions-v0.2 | |
spack -d gpg list | |
tree ~/.spack/bootstrap/store/ | |
macos-gnupg-binaries: | |
runs-on: macos-latest | |
if: github.repository == 'spack/spack' | |
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@2541b1294d2704b0964813337f33b291d3f8596b | |
- name: Bootstrap GnuPG | |
run: | | |
source share/spack/setup-env.sh | |
spack bootstrap untrust spack-install | |
spack -d gpg list | |
tree ~/.spack/bootstrap/store/ | |
macos-gnupg-sources: | |
runs-on: macos-latest | |
if: github.repository == 'spack/spack' | |
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@2541b1294d2704b0964813337f33b291d3f8596b | |
- name: Bootstrap GnuPG | |
run: | | |
source share/spack/setup-env.sh | |
spack solve zlib | |
spack bootstrap untrust github-actions-v0.2 | |
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 |