1
- name : Release
1
+ name : Release RISC-V IMC
2
2
3
3
on :
4
4
workflow_dispatch :
5
5
inputs :
6
- version :
7
- description : ' Release version tag (e.g. v0.5.0) '
6
+ release_name :
7
+ description : ' Name of the GitHub Release '
8
8
required : true
9
9
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'
10
22
11
23
env :
12
24
CARGO_TERM_COLOR : always
17
29
name : RISC-V IMC Release (ESP32-C3 Projects)
18
30
runs-on : ubuntu-latest
19
31
steps :
20
- - name : Checkout repository
32
+ - name : Checkout Repository
21
33
uses : actions/checkout@v4
22
34
23
35
- name : Setup Rust for RISC-V IMC
@@ -26,102 +38,47 @@ jobs:
26
38
toolchain : stable
27
39
target : riscv32imc-unknown-none-elf
28
40
29
- - name : Build ESP32-C3 Project and collect assets
41
+ - name : Build ESP32-C3 Project and Collect Assets
30
42
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/
67
49
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
75
52
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
81
55
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
99
58
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'
104
72
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
107
74
108
- - name : Package WASM assets
75
+ - name : Upload RISC-V IMC Assets
109
76
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
119
83
env :
120
84
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