1- name : release
1+ name : release_config_and_modules
22
33on :
44 push :
55 tags :
66 - ' v*.*.*'
7- workflow_dispatch :
8- inputs :
9- tag_name :
10- description : ' The tag name for the release'
11- required : true
12- default : ' v0.0.1'
13- draft :
14- description : ' Create a draft release'
15- required : false
16- default : ' true'
177
188permissions :
199 contents : write
@@ -28,107 +18,96 @@ jobs:
2818 uses : actions/checkout@v4
2919 with :
3020 submodules : recursive
21+ token : ${{ secrets.GH_PAT }}
3122
3223 - name : Set Version
3324 id : set_version
3425 run : |
35- if [ "${{ github.event_name }}" == "push" ]; then
36- VERSION=${GITHUB_REF#refs/tags/}
37- else
38- VERSION=${{ inputs.tag_name }}
39- fi
40- echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
26+ echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
4127
4228 - name : Create release
4329 id : create_release
4430 uses : actions/create-release@v1
4531 env :
46- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
32+ GITHUB_TOKEN : ${{ secrets.GH_PAT }}
4733 with :
4834 tag_name : ${{ steps.set_version.outputs.VERSION }}
4935 release_name : Release ${{ steps.set_version.outputs.VERSION }}
5036 body : |
5137 Release ${{ steps.set_version.outputs.VERSION }}
52- draft : true
38+ draft : false
5339 prerelease : false
5440
55- - name : Download win-kit resources
56- uses : robinraju/release-downloader@v1.11
57- with :
58- repository : " chainreactors/malefic-win-kit"
59- latest : true
60- fileName : " community_resource.zip"
61- token : ${{ secrets.PAT_TOKEN }}
62-
63- - name : Download rem lib
64- uses : robinraju/release-downloader@v1.11
65- with :
66- repository : " chainreactors/rem-community"
67- latest : true
68- fileName : " rem_lib.zip"
69- token : ${{ secrets.PAT_TOKEN }}
70-
71- - name : Extract zip
72- run : |
73- unzip community_resource.zip -d community_resource
74- unzip rem_lib.zip -d rem_lib
75- mkdir resources_dir
76- mv community_resource/* resources_dir/
77- mv rem_lib/dist/lib/*.a resources_dir/
78- cd resources_dir
79- zip -r ../resources.zip ./*
80- cd ..
81-
82- - name : Upload resources
83- env :
84- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
85- run : |
86- gh release upload ${{ steps.set_version.outputs.VERSION }} resources.zip
87-
88- release-mutant :
41+ config-release :
8942 needs : create-release
9043 runs-on : ubuntu-22.04
9144 continue-on-error : true
9245 strategy :
9346 matrix :
9447 target :
95- - x86_64-pc-windows-gnu
96- # - i686-pc-windows-msvc
48+ - x86_64-pc-windows-msvc
49+ - i686-pc-windows-msvc
9750 - x86_64-unknown-linux-musl
98- # - i686-unknown-linux-musl
51+ - i686-unknown-linux-musl
9952 - x86_64-apple-darwin
10053 - aarch64-apple-darwin
10154 steps :
102- - name : Checkout
55+ - name : Checkout code
10356 uses : actions/checkout@v4
10457 with :
10558 submodules : recursive
59+ token : ${{ secrets.GH_PAT }}
60+
61+ - name : Create output directory
62+ run : |
63+ mkdir -p output/
10664
10765 - name : Build malefic-mutant for ${{matrix.target}}
10866 shell : ' script --return --quiet --log-out /dev/null --command "bash -e {0}"'
10967 run : |
110- mkdir -p output/
68+
69+ docker run -v "$(pwd):/root/src" --rm -it ghcr.io/chainreactors/${{matrix.target}}:nightly-2024-08-16-latest \
70+ cargo build --release -p malefic-mutant --target ${{matrix.target}}
71+ sudo chmod -R 777 target
72+
73+ target_dir="target/${{matrix.target}}/release"
11174 binary_name="malefic-mutant"
112- release_dir="release"
113- target_dir="target/${{matrix.target}}/${release_dir}"
114- docker run -v "$(pwd):/root/src" --rm -it ghcr.io/chainreactors/malefic-builder:v0.0.4 \
115- cargo build --release -p malefic-mutant --target ${{matrix.target}}
11675
117- sudo chmod 777 -R target/
11876 if [[ -f ${target_dir}/${binary_name}.exe ]]; then
11977 mv ${target_dir}/${binary_name}.exe output/${binary_name}-${{matrix.target}}.exe
12078 else
12179 mv ${target_dir}/${binary_name} output/${binary_name}-${{matrix.target}}
12280 fi
12381
82+ - name : Build malefic-modules for ${{matrix.target}}
83+ if : ${{ contains(matrix.target, 'windows') }}
84+ shell : ' script --return --quiet --log-out /dev/null --command "bash -e {0}"'
85+ run : |
86+ docker run -v "$(pwd):/root/src" --rm -it ghcr.io/chainreactors/${{matrix.target}}:nightly-2024-08-16-latest bash -c "\
87+ cargo build --release -p malefic-mutant && \
88+ ./target/release/malefic-mutant generate modules "base" && \
89+ cargo build --release -p malefic-modules --features "base" --target ${{matrix.target}} &&
90+ mv target/${{matrix.target}}/release/modules.dll output/modules-base-${{matrix.target}}.dll && \
91+ ./target/release/malefic-mutant generate modules "extend" && \
92+ cargo build --release -p malefic-modules --features "extend" --target ${{matrix.target}} &&
93+ mv target/${{matrix.target}}/release/modules.dll output/modules-extend-${{matrix.target}}.dll && \
94+ ./target/release/malefic-mutant generate modules "full" && \
95+ cargo build --release -p malefic-modules --features "full" --target ${{matrix.target}} &&
96+ mv target/${{matrix.target}}/release/modules.dll output/modules-full-${{matrix.target}}.dll "
97+
98+ - name : Chmod output
99+ run : |
100+ sudo chmod -R 777 output
101+
124102 - name : Release ${{ matrix.target }}
125103 env :
126104 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
127105 run : |
128- cd output
129- for file in *; do
106+ for file in output/*; do
130107 filename=$(basename "$file")
131- echo "Uploading $filename"
132- gh release upload ${{ needs.create-release.outputs.VERSION }} $filename
108+ echo "Uploading $file"
109+ sha256sum $file >> $file.sha256
110+ gh release upload ${{ needs.create-release.outputs.VERSION }} $file.sha256
111+ gh release upload ${{ needs.create-release.outputs.VERSION }} $file
133112 done
134113 shell : bash
0 commit comments