Skip to content

Commit 69dc153

Browse files
committed
Add GitHub workflow for building executables
1 parent f8e2422 commit 69dc153

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Build testbenches
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
workflow_dispatch:
8+
9+
env:
10+
CROSS_CC_PREFIX: riscv-none-elf-
11+
CROSS_CC_URL: https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v14.2.0-1/xpack-riscv-none-elf-gcc-14.2.0-1-linux-x64.tar.gz
12+
13+
jobs:
14+
build-testbenches:
15+
runs-on: ubuntu-20.04
16+
steps:
17+
- name: Install essential packages
18+
run: |
19+
sudo apt-get update -q -y
20+
sudo apt-get upgrade -q -y
21+
sudo apt-get install -q -y gcc-multilib g++-multilib
22+
- name: Checkout repository
23+
uses: actions/checkout@v4
24+
with:
25+
submodules: 'true'
26+
- name: Test changed files
27+
id: file-changed
28+
uses: tj-actions/changed-files@v44
29+
with:
30+
fetch_additional_submodule_history: 'true'
31+
files: |
32+
tests/ansibench/*
33+
tests/rv8-bench/*
34+
tests/*.c
35+
- name: Fetch xPack RISC-V GNU toolchain
36+
if: ${{ steps.file-changed.outputs.any_changed == 'true' || github.event_name == 'workflow_dispatch' }}
37+
run: |
38+
mkdir -p /opt/riscv-gnu-toolchain
39+
wget -O - $CROSS_CC_URL | tar -zxf - --strip-components=1 -C /opt/riscv-gnu-toolchain
40+
echo "/opt/riscv-gnu-toolchain/bin" >> $GITHUB_PATH
41+
echo "CROSS_CC=/opt/riscv-gnu-toolchain/bin/$CROSS_CC_PREFIX""gcc" >> $GITHUB_ENV
42+
- name: Build RISC-V executables
43+
if: ${{ steps.file-changed.outputs.any_changed == 'true' || github.event_name == 'workflow_dispatch' }}
44+
run: |
45+
CROSS_CC=$CROSS_CC USE_PREBUILT=0 make build-testbenches
46+
- name: Create tarballs
47+
if: ${{ steps.file-changed.outputs.any_changed == 'true' || github.event_name == 'workflow_dispatch' }}
48+
run: |
49+
tar -zcf rv32emu-prebuilt.tar.gz -C build bin
50+
- name: Create GitHub Release
51+
if: ${{ steps.file-changed.outputs.any_changed == 'true' || github.event_name == 'workflow_dispatch' }}
52+
env:
53+
GH_TOKEN: ${{ secrets.RV32EMU_PREBUILT_TOKEN }}
54+
run: |
55+
RELEASE_TAG=$(date +'%Y.%m.%d')
56+
gh release create $RELEASE_TAG \
57+
--repo sysprog21/rv32emu-prebuilt \
58+
--title "$RELEASE_TAG""-nightly"
59+
gh release upload $RELEASE_TAG \
60+
rv32emu-prebuilt.tar.gz \
61+
--repo sysprog21/rv32emu-prebuilt

0 commit comments

Comments
 (0)