cvw/.github/workflows/install.yml

210 lines
6.7 KiB
YAML
Raw Normal View History

2024-07-16 07:14:57 +00:00
name: Installation
2024-07-21 21:16:12 +00:00
on: [workflow_dispatch, push]
2024-07-18 04:34:55 +00:00
defaults:
run:
shell: bash
jobs:
2024-07-16 07:14:57 +00:00
ubuntu_install:
name: Test installation on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
2024-07-16 07:33:56 +00:00
fail-fast: false
2024-07-16 07:14:57 +00:00
matrix:
2024-07-17 08:25:06 +00:00
os: ["ubuntu-20.04", "ubuntu-22.04", "ubuntu-24.04"]
steps:
2024-07-17 08:50:19 +00:00
- uses: actions/checkout@v4
2024-10-14 04:17:20 +00:00
- name: Clone Necessary Submodules
2024-10-14 04:48:00 +00:00
run: |
git config --global --add safe.directory '*'
2024-10-14 07:48:39 +00:00
git submodule update --init addins/riscv-arch-test addins/verilog-ethernet
2024-07-06 13:52:43 +00:00
- name: Free up storage
run: |
2024-07-17 08:25:06 +00:00
df -h
2024-07-17 08:50:19 +00:00
./.github/cli-space-cleanup.sh
2024-07-06 13:45:34 +00:00
df -h
2024-07-06 13:52:43 +00:00
- name: install
2024-10-14 06:30:37 +00:00
run: sudo ./bin/wally-tool-chain-install.sh --clean --no-buildroot
2024-08-08 05:02:33 +00:00
- name: Upload installation logs
uses: actions/upload-artifact@v4
if: always()
with:
name: installation-logs-${{ matrix.os }}
path: /opt/riscv/logs/
2024-10-12 04:54:28 +00:00
- name: check storage
run: |
df -h
du -h --max-depth=1
- name: make tests
2024-07-17 08:42:02 +00:00
run: |
source setup.sh
2024-10-08 22:20:02 +00:00
make riscof
2024-10-12 04:54:28 +00:00
- name: check storage
run: |
df -h
du -h --max-depth=1
2024-07-23 09:00:27 +00:00
- name: regression
2024-07-17 08:42:02 +00:00
run: |
source setup.sh
2024-07-21 06:16:35 +00:00
regression-wally
2024-08-08 05:02:33 +00:00
- name: Upload regression logs
uses: actions/upload-artifact@v4
2024-07-21 18:16:08 +00:00
if: always()
with:
name: regression-logs-${{ matrix.os }}
path: ${{ github.workspace }}/sim/verilator/logs/
2024-07-17 08:25:06 +00:00
2024-07-16 07:14:57 +00:00
rhel_family_install:
name: Test installation on ${{ matrix.os }}
runs-on: ubuntu-latest
container:
image: ${{ matrix.os }}
2024-07-17 08:50:19 +00:00
options: --privileged --mount type=bind,source=/,target=/host --pid=host --entrypoint /bin/bash
2024-07-16 07:14:57 +00:00
strategy:
2024-07-16 07:33:56 +00:00
fail-fast: false
2024-07-16 07:14:57 +00:00
matrix:
2024-07-17 08:25:06 +00:00
os: ["rockylinux:8", "rockylinux:9", "almalinux:8", "almalinux:9"]
2024-07-16 07:14:57 +00:00
steps:
2024-07-21 21:16:12 +00:00
- name: Unique name for Artifacts
id: prep_artifact_name
run: |
name=$(echo -n "${{ matrix.os }}" | sed -e 's/[ \t:\/\\"<>|*?]/-/g' -e 's/--*/-/g')
echo "ARTIFACT_NAME=$name" >> $GITHUB_ENV
- name: Install dependencies
run: |
dnf install -y sudo git
2024-07-17 08:50:19 +00:00
dnf install curl -y --allowerasing || true
- uses: actions/checkout@v4
2024-10-14 04:17:20 +00:00
- name: Clone Necessary Submodules
2024-10-14 04:48:00 +00:00
run: |
git config --global --add safe.directory '*'
2024-10-14 07:48:39 +00:00
git submodule update --init addins/riscv-arch-test addins/verilog-ethernet
2024-07-17 08:42:02 +00:00
- name: Free up storage
2024-07-16 07:14:57 +00:00
run: |
df -h
2024-07-17 08:42:02 +00:00
nsenter -t 1 -m -u -n -i bash -c "$(cat .github/cli-space-cleanup.sh)"
2024-07-16 07:14:57 +00:00
df -h
- name: install
2024-10-14 06:30:37 +00:00
run: sudo ./bin/wally-tool-chain-install.sh --clean --no-buildroot
2024-08-08 05:02:33 +00:00
- name: Upload installation logs
uses: actions/upload-artifact@v4
if: always()
with:
name: installation-logs-${{ env.ARTIFACT_NAME }}
path: /opt/riscv/logs/
2024-10-12 04:54:28 +00:00
- name: check storage
run: |
df -h
du -h --max-depth=1
2024-08-08 05:02:33 +00:00
- name: make tests
run: |
source setup.sh
2024-09-30 15:07:35 +00:00
make riscof --jobs $(nproc --ignore 1)
2024-10-12 04:54:28 +00:00
- name: check storage
run: |
df -h
du -h --max-depth=1
2024-08-08 05:02:33 +00:00
- name: regression
run: |
source setup.sh
regression-wally
- name: Upload regression logs
uses: actions/upload-artifact@v4
if: always()
with:
name: regression-logs-${{ env.ARTIFACT_NAME }}
path: ${{ github.workspace }}/sim/verilator/logs/
user_install:
name: Test installation with user permissions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
2024-10-14 04:17:20 +00:00
- name: Clone Necessary Submodules
2024-10-14 04:48:00 +00:00
run: |
git config --global --add safe.directory '*'
2024-10-14 07:48:39 +00:00
git submodule update --init addins/riscv-arch-test addins/verilog-ethernet
2024-08-08 05:02:33 +00:00
- name: Free up storage
run: |
df -h
./.github/cli-space-cleanup.sh
df -h
- name: install packages with sudo
run: sudo ./bin/wally-package-install.sh
- name: install
2024-10-14 06:30:37 +00:00
run: ./bin/wally-tool-chain-install.sh --clean --no-buildroot
2024-08-08 05:02:33 +00:00
- name: Upload installation logs
uses: actions/upload-artifact@v4
if: always()
with:
name: installation-logs-user-install
path: ~/riscv/logs/
- name: make tests
2024-07-17 08:25:06 +00:00
run: |
source setup.sh
2024-09-30 15:07:35 +00:00
make riscof --jobs $(nproc --ignore 1)
2024-07-21 06:16:35 +00:00
- name: regression
2024-07-17 08:25:06 +00:00
run: |
source setup.sh
2024-07-21 06:16:35 +00:00
regression-wally
2024-08-08 05:02:33 +00:00
- name: Upload regression logs
uses: actions/upload-artifact@v4
2024-07-21 18:16:08 +00:00
if: always()
with:
2024-08-08 05:02:33 +00:00
name: regression-logs-user-install
2024-07-21 18:16:08 +00:00
path: ${{ github.workspace }}/sim/verilator/logs/
2024-08-08 05:02:33 +00:00
custom_location_install:
name: Test installation with custom location ${{ matrix.path }}
2024-08-08 05:02:33 +00:00
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
path: ["/home/riscv"]
2024-08-08 05:02:33 +00:00
steps:
- name: Unique name for Artifacts
id: prep_artifact_name
run: |
name=$(echo -n "${{ matrix.os }}" | sed -e 's/[ \t:\/\\"<>|*?]/-/g' -e 's/--*/-/g')
echo "ARTIFACT_NAME=$name" >> $GITHUB_ENV
2024-08-08 05:02:33 +00:00
- uses: actions/checkout@v4
2024-10-14 04:17:20 +00:00
- name: Clone Necessary Submodules
2024-10-14 04:48:00 +00:00
run: |
git config --global --add safe.directory '*'
2024-10-14 07:48:39 +00:00
git submodule update --init addins/riscv-arch-test addins/verilog-ethernet
2024-08-08 05:02:33 +00:00
- name: Free up storage
run: |
df -h
./.github/cli-space-cleanup.sh
df -h
- name: install
2024-10-14 06:30:37 +00:00
run: sudo ./bin/wally-tool-chain-install.sh --clean --no-buildroot ${{ matrix.path }}
2024-08-08 05:02:33 +00:00
- name: Upload instalation logs
uses: actions/upload-artifact@v4
if: always()
with:
name: installation-logs-custom-location-install-${{ env.ARTIFACT_NAME }}
path: ${{ matrix.path }}/logs/
2024-08-08 05:02:33 +00:00
- name: Update setup.sh with new $RISCV location
run: sed -i 's,exit 1,export RISCV=${{ matrix.path }},g' setup.sh
2024-08-08 05:02:33 +00:00
- name: make tests
run: |
source setup.sh
2024-09-30 15:07:35 +00:00
make riscof --jobs $(nproc --ignore 1)
2024-10-10 20:59:36 +00:00
- name: check storage
run: |
df -h
du -h --max-depth=1
2024-08-08 05:02:33 +00:00
- name: regression
run: |
source setup.sh
regression-wally
- name: Upload regression logs
uses: actions/upload-artifact@v4
2024-07-23 07:19:20 +00:00
if: always()
with:
name: regression-logs-custom-location-install-${{ env.ARTIFACT_NAME }}
path: ${{ github.workspace }}/sim/verilator/logs/