1- name : test and publish
2-
3- on :
4- workflow_run :
5- workflows : ["CI/CD"]
6- types :
7- - completed
1+ name : Release Build and Publish
82
93permissions :
104 contents : write
115
6+ on :
7+ push :
8+ tags :
9+ - " v*"
10+ workflow_dispatch :
11+ inputs :
12+ release_name :
13+ description : " Name of release"
14+ required : false
15+ default : " "
16+
1217jobs :
13- release :
18+ build :
1419 runs-on : ubuntu-latest
15- if : ${{ github.ref == 'refs/heads/main' }}
20+
1621 steps :
17-
18- - name : release
22+ - uses : actions/checkout@v4
23+ - uses : dtolnay/rust-toolchain@stable
24+
25+ - name : Build release
26+ run : cargo build --release
27+
28+ - name : Convert BIOS image to ISO
1929 run : |
20- echo "ToDo: release"
30+ mkdir -p isos
31+ cp target/bios.img isos/bios.img
32+ xorriso -as mkisofs -o isos/bios.iso isos/bios.img
33+
34+ - name : Convert UEFI image to ISO
35+ run : |
36+ cp target/uefi.img isos/uefi.img
37+ xorriso -as mkisofs -o isos/uefi.iso isos/uefi.img
38+
39+ - name : Get tag or manual release name
40+ id : tag_name
41+ run : |
42+ if [ -n "${{ github.event.inputs.release_name }}" ]; then
43+ echo "RELEASE_NAME=${{ github.event.inputs.release_name }}" >> $GITHUB_ENV
44+ else
45+ echo "RELEASE_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
46+ fi
47+
48+ - name : Get commit history with mentions
49+ id : commit_history
50+ run : |
51+ if [ -n "${{ github.event.inputs.release_name }}" ]; then
52+ # Si es un lanzamiento manual, muestra los últimos 10 commits
53+ echo "COMMIT_HISTORY=$(git log --pretty=format:'- %s (by @%an)' -n 10)" >> $GITHUB_ENV
54+ else
55+ # Si es un lanzamiento automático, muestra los commits desde el último tag
56+ echo "COMMIT_HISTORY=$(git log --pretty=format:'- %s (by @%an)' $(git describe --tags --abbrev=0)..HEAD)" >> $GITHUB_ENV
57+ fi
58+
59+ - name : Create Release
60+ uses : softprops/action-gh-release@v2
61+ with :
62+ tag_name : ${{ env.RELEASE_NAME }}
63+ name : ${{ env.RELEASE_NAME }}
64+ body : ${{ env.COMMIT_HISTORY }}
65+ files : |
66+ isos/bios.iso
67+ isos/uefi.iso
0 commit comments