Add schedule to run weekly #212
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: Installation | |
on: | |
workflow_dispatch: | |
push: | |
schedule: | |
- cron: "0 0 * * 3" # Run at 12:00 AM on Wednesdays | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
installation_test: | |
name: Test installation for ${{ matrix.name }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# Ubuntu Installations | |
- name: ubuntu-20.04 | |
os: ubuntu-20.04 | |
container: null | |
- name: ubuntu-22.04 | |
os: ubuntu-22.04 | |
container: null | |
- name: ubuntu-24.04 | |
os: ubuntu-24.04 | |
container: null | |
# Red Hat Installations | |
- name: rocky-8 | |
os: ubuntu-latest | |
image: rockylinux:8 | |
- name: rocky-9 | |
os: ubuntu-latest | |
image: rockylinux:9 | |
- name: almalinux-8 | |
os: ubuntu-latest | |
image: almalinux:8 | |
- name: almalinux-9 | |
os: ubuntu-latest | |
image: almalinux:9 | |
# User level installation | |
- name: user-install | |
os: ubuntu-latest | |
image: null | |
user: true | |
# Custom location installation | |
- name: custom-install | |
os: ubuntu-latest | |
image: null | |
riscv_path: /home/riscv | |
runs-on: ${{ matrix.os }} | |
container: | |
image: ${{ matrix.image }} | |
options: --privileged --mount type=bind,source=/,target=/host --pid=host --entrypoint /bin/bash | |
steps: | |
- name: Install Dependencies for Red Hat | |
if: ${{ matrix.image != null }} | |
run: | | |
dnf install -y sudo git | |
dnf install curl -y --allowerasing || true | |
- uses: actions/checkout@v4 | |
- name: Clone Necessary Submodules | |
run: | | |
git config --global --add safe.directory '*' | |
git submodule update --init addins/riscv-arch-test addins/verilog-ethernet | |
- name: Free Up Storage | |
run: | | |
df -h | |
if [ -z ${{ matrix.image }} ]; then | |
./.github/cli-space-cleanup.sh | |
else | |
nsenter -t 1 -m -u -n -i bash -c "$(cat .github/cli-space-cleanup.sh)" | |
fi | |
df -h | |
- name: Install | |
run: | | |
if [ -z ${{ matrix.user }} ]; then | |
sudo ./bin/wally-tool-chain-install.sh --clean ${{ matrix.riscv_path }} | |
else | |
sudo ./bin/wally-package-install.sh | |
./bin/wally-tool-chain-install.sh --clean ${{ matrix.riscv_path }} | |
fi | |
- name: Set Environment Variables | |
run: | | |
if [ ! -z ${{ matrix.riscv_path }} ]; then | |
sed -i 's,exit 1,export RISCV=${{ matrix.riscv_path }},g' setup.sh | |
fi | |
source setup.sh | |
echo "RISCV=$RISCV" >> "$GITHUB_ENV" | |
- name: Upload Installation Logs | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: installation-logs-${{ matrix.name }} | |
path: ${{ env.RISCV }}/logs/ | |
- name: make tests | |
run: | | |
source setup.sh | |
make riscof --jobs $(nproc --ignore 1) | |
- name: Remove Buildroot to Save Space | |
run: | | |
sudo rm -rf $RISCV/buildroot/output/build | |
df -h | |
- name: Regression | |
if: ${{ matrix.name != 'ubuntu-20.04' && matrix.name != 'rocky-8' && matrix.name != 'almalinux-8'}} | |
run: | | |
source setup.sh | |
regression-wally | |
- name: Upload regression logs | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: regression-logs-${{ matrix.name }} | |
path: ${{ github.workspace }}/sim/verilator/logs/ |