Skip to content

Commit 56fbe73

Browse files
committed
github: add release script
Signed-off-by: Sean Cross <[email protected]>
1 parent 5569b4e commit 56fbe73

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Rust for Xous
2+
3+
on: [push]
4+
5+
jobs:
6+
build-libstd:
7+
runs-on: ubuntu-latest
8+
9+
steps:
10+
- name: Setup riscv gnu/gcc toolchain
11+
uses: gregdavill/[email protected]
12+
13+
- name: Checkout
14+
uses: actions/checkout@v2
15+
with:
16+
submodules: 'recursive'
17+
18+
- name: Determine Rust version
19+
shell: bash
20+
run: echo "version=$(echo ${GITHUB_REF} | cut -d/ -f3 | cut -d- -f1 | cut -d. -f1,2,3)" >> $GITHUB_OUTPUT
21+
id: extract_rust_version
22+
23+
- name: Install Rust toolchain v${{ steps.extract_rust_version.outputs.version }}
24+
uses: actions-rs/toolchain@v1
25+
with:
26+
toolchain: ${{ steps.extract_rust_version.outputs.version }}
27+
default: true
28+
override: true
29+
target: riscv32imac-unknown-none-elf
30+
31+
- name: Install riscv32imac-unknown-xous-elf toolchain file
32+
run: |
33+
rm -rf $(rustc --print sysroot)/lib/rustlib/riscv32imac-unknown-xous-elf \
34+
&& mkdir -p $(rustc --print sysroot)/lib/rustlib/riscv32imac-unknown-xous-elf/lib \
35+
&& rustc --version | awk '{print $2}' > $(rustc --print sysroot)/lib/rustlib/riscv32imac-unknown-xous-elf/RUST_VERSION
36+
37+
- name: Build Rust libstd
38+
run: |
39+
export RUST_COMPILER_RT_ROOT=$(pwd)/src/llvm-project/compiler-rt \
40+
&& rm -rf target \
41+
&& cargo build \
42+
--target riscv32imac-unknown-xous-elf \
43+
-Zbinary-dep-depinfo \
44+
--release \
45+
--features "panic-unwind compiler-builtins-c compiler-builtins-mem" \
46+
--manifest-path "library/sysroot/Cargo.toml" \
47+
&& cp library/target/riscv32imac-unknown-xous-elf/release/deps/*.rlib $(rustc --print sysroot)/lib/rustlib/riscv32imac-unknown-xous-elf/lib \
48+
&& (dest=$(pwd) && cd $(rustc --print sysroot) && zip -r ${dest}/riscv32imac-unknown-xous_${{ steps.extract_rust_version.outputs.version }}.zip lib/rustlib/riscv32imac-unknown-xous-elf/)
49+
env:
50+
CARGO_PROFILE_RELEASE_DEBUG: 0
51+
CARGO_PROFILE_RELEASE_OPT_LEVEL: 3
52+
CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS: false
53+
RUSTC_BOOTSTRAP: 1
54+
RUSTFLAGS: -Cforce-unwind-tables=yes -Cembed-bitcode=yes -Zforce-unstable-if-unmarked
55+
__CARGO_DEFAULT_LIB_METADATA: stablestd
56+
CC: riscv-none-embed-gcc
57+
AR: riscv-none-embed-ar
58+
59+
- name: Release
60+
uses: softprops/action-gh-release@v1
61+
if: startsWith(github.ref, 'refs/tags/')
62+
with:
63+
files: |
64+
riscv32imac-unknown-xous_${{ steps.extract_rust_version.outputs.version }}.zip
65+
env:
66+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)