Skip to content

Commit 229e83e

Browse files
committed
ci: update release risc-v-imc
1 parent 2a5db7b commit 229e83e

File tree

1 file changed

+50
-93
lines changed

1 file changed

+50
-93
lines changed
Lines changed: 50 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
1-
name: Release
1+
name: Release RISC-V IMC
22

33
on:
44
workflow_dispatch:
55
inputs:
6-
version:
7-
description: 'Release version tag (e.g. v0.5.0)'
6+
release_name:
7+
description: 'Name of the GitHub Release'
88
required: true
99
default: 'v0.5.0'
10+
release_tag:
11+
description: 'Tag for the GitHub Release'
12+
required: true
13+
default: 'v0.5.0'
14+
prefix:
15+
description: 'Prefix for binary name'
16+
required: true
17+
default: 'esp32-conways-game-of-life'
18+
target:
19+
description: 'Target directory for the ESP32-C3 project (e.g. esp32-c3-lcdkit)'
20+
required: true
21+
default: 'esp32-c3-lcdkit'
1022

1123
env:
1224
CARGO_TERM_COLOR: always
@@ -17,7 +29,7 @@ jobs:
1729
name: RISC-V IMC Release (ESP32-C3 Projects)
1830
runs-on: ubuntu-latest
1931
steps:
20-
- name: Checkout repository
32+
- name: Checkout Repository
2133
uses: actions/checkout@v4
2234

2335
- name: Setup Rust for RISC-V IMC
@@ -26,102 +38,47 @@ jobs:
2638
toolchain: stable
2739
target: riscv32imc-unknown-none-elf
2840

29-
- name: Build ESP32-C3 Project and collect assets
41+
- name: Build ESP32-C3 Project and Collect Assets
3042
run: |
31-
cd esp32-c3-lcdkit && cargo build --release && cd ..
32-
mkdir -p release_riscv
33-
cp esp32-c3-lcdkit/target/riscv32imc-unknown-none-elf/release/esp32-conways-game-of-life-rs release_riscv/
34-
35-
- name: Create GitHub Release for RISC-V
36-
uses: softprops/action-gh-release@v1
37-
with:
38-
tag_name: ${{ github.event.inputs.version }}
39-
name: "ESP32-C3 Release"
40-
env:
41-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42-
43-
- name: Upload RISC-V Assets
44-
uses: softprops/action-gh-release@v1
45-
with:
46-
tag_name: ${{ github.event.inputs.version }}
47-
files: release_riscv/*
48-
49-
riscv-imac-release:
50-
name: RISC-V IMAC Release (ESP32-C6 Projects)
51-
runs-on: ubuntu-latest
52-
steps:
53-
- name: Checkout repository
54-
uses: actions/checkout@v4
55-
56-
- name: Setup Rust for RISC-V IMAC
57-
uses: actions-rs/toolchain@v1
58-
with:
59-
toolchain: stable
60-
target: riscv32imac-unknown-none-elf
61-
62-
- name: Build ESP32-C6 Project and collect assets
63-
run: |
64-
cd esp32-c6-waveshare-1_47 && cargo build --release && cd ..
65-
mkdir -p release_riscv
66-
cp esp32-c6-waveshare-1_47/target/riscv32imac-unknown-none-elf/release/esp32-conways-game-of-life-rs release_riscv/
43+
cd "${{ github.event.inputs.target }}"
44+
cargo build --release
45+
cd ..
46+
mkdir -p release_riscv_imc
47+
# Adjust the binary name/path as needed.
48+
cp "${{ github.event.inputs.target }}/target/riscv32imc-unknown-none-elf/release/esp32-conways-game-of-life-rs" release_riscv_imc/
6749
68-
- name: Create GitHub Release for RISC-V
69-
uses: softprops/action-gh-release@v1
70-
with:
71-
tag_name: ${{ github.event.inputs.version }}
72-
name: "ESP32-C6 Release"
73-
env:
74-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50+
- name: Install GitHub CLI
51+
run: sudo apt-get update && sudo apt-get install -y gh
7552

76-
- name: Upload RISC-V Assets
77-
uses: softprops/action-gh-release@v1
78-
with:
79-
tag_name: ${{ github.event.inputs.version }}
80-
files: release_riscv/*
53+
- name: Authenticate GitHub CLI
54+
run: echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token
8155

82-
wasm-release:
83-
name: WASM Release
84-
runs-on: ubuntu-latest
85-
steps:
86-
- name: Checkout repository
87-
uses: actions/checkout@v4
88-
89-
- name: Setup Rust for WASM
90-
uses: actions-rs/toolchain@v1
91-
with:
92-
toolchain: stable
93-
target: wasm32-unknown-unknown
94-
95-
- name: Install wasm-bindgen CLI
96-
run: cargo install wasm-bindgen-cli
97-
98-
- name: Build WASM project
56+
- name: Check if Release Exists
57+
id: check_release
9958
run: |
100-
cd wasm
101-
cargo build --release --target wasm32-unknown-unknown
102-
103-
- name: Run wasm-bindgen
59+
set +e
60+
gh release view "${{ github.event.inputs.release_tag }}" > /dev/null 2>&1
61+
if [ $? -eq 0 ]; then
62+
echo "Release already exists."
63+
echo "release_exists=true" >> $GITHUB_ENV
64+
else
65+
echo "Release does not exist."
66+
echo "release_exists=false" >> $GITHUB_ENV
67+
fi
68+
set -e
69+
70+
- name: Create Release if Needed
71+
if: env.release_exists == 'false'
10472
run: |
105-
cd wasm
106-
wasm-bindgen --target web --out-dir pkg target/wasm32-unknown-unknown/release/conways_wasm.wasm
73+
gh release create "${{ github.event.inputs.release_tag }}" --title "${{ github.event.inputs.release_name }}" --prerelease
10774
108-
- name: Package WASM assets
75+
- name: Upload RISC-V IMC Assets
10976
run: |
110-
cd wasm/pkg
111-
zip -r wasm_package.zip .
112-
mv wasm_package.zip ../../release_wasm.zip
113-
114-
- name: Create GitHub Release for WASM
115-
uses: softprops/action-gh-release@v1
116-
with:
117-
tag_name: ${{ github.event.inputs.version }}
118-
name: "WASM Release"
77+
for file in $(find release_riscv_imc -type f); do
78+
base=$(basename "$file")
79+
asset_name="${{ github.event.inputs.prefix }}-${{ github.event.inputs.release_tag }}-${base}"
80+
echo "Uploading $file as $asset_name"
81+
gh release upload "${{ github.event.inputs.release_tag }}" "$file#${asset_name}" --clobber
82+
done
11983
env:
12084
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
121-
122-
- name: Upload WASM Assets
123-
uses: softprops/action-gh-release@v1
124-
with:
125-
tag_name: ${{ github.event.inputs.version }}
126-
asset_path: release_wasm.zip
127-
asset_name: wasm_package.zip

0 commit comments

Comments
 (0)