source: Main/trunk/.github/workflows/build.yml@ 263

Last change on this file since 263 was 263, checked in by Nishi, on Oct 5, 2024 at 4:34:30 PM

update workflow

File size: 2.8 KB
Line 
1# $Id$
2
3name: "Build Tewi HTTPd"
4
5on:
6 workflow_dispatch:
7 inputs:
8 levels:
9 description: "level"
10 type: number
11 required: false
12 push:
13
14concurrency:
15 group: "build"
16 cancel-in-progress: true
17
18jobs:
19 build-win32:
20 name: "Build for Windows 32-bit"
21 runs-on: ubuntu-latest
22
23 permissions:
24 contents: write
25
26 steps:
27 - name: Checkout
28 uses: actions/checkout@v4
29 - name: Install packages
30 run: sudo apt-get install nsis mingw-w64
31 - name: Get OpenSSL
32 run: git clone https://github.com/clamwin/openssl
33 - name: Make it use the correct library
34 run: cp openssl/lib/mingw/x86/*.a openssl/lib/
35 - name: Build
36 run: ./installer.sh win32
37 - name: Rename
38 run: mv install-nossl.exe tewiinst32-nossl.exe && mv install-ssl.exe tewiinst32-ssl.exe
39 - name: Create a zipfile
40 run: zip -rv tewiinst32.zip tewiinst32-*.exe
41 - name: Upload artifact
42 uses: actions/upload-artifact@v4
43 with:
44 name: build-win32
45 path: tewiinst32.zip
46
47 build-win64:
48 name: "Build for Windows 64-bit"
49 runs-on: ubuntu-latest
50
51 permissions:
52 contents: write
53
54 steps:
55 - name: Checkout
56 uses: actions/checkout@v4
57 - name: Install packages
58 run: sudo apt-get install nsis mingw-w64
59 - name: Get OpenSSL
60 run: git clone https://github.com/clamwin/openssl
61 - name: Make it use the correct library
62 run: cp openssl/lib/mingw/x64/*.a openssl/lib/
63 - name: Build
64 run: ./installer.sh win64
65 - name: Rename
66 run: mv install-nossl.exe tewiinst64-nossl.exe && mv install-ssl.exe tewiinst64-ssl.exe
67 - name: Create a zipfile
68 run: zip -rv tewiinst64.zip tewiinst64-*.exe
69 - name: Upload artifact
70 uses: actions/upload-artifact@v4
71 with:
72 name: build-win64
73 path: tewiinst64.zip
74
75 release:
76 name: "Release"
77 runs-on: ubuntu-latest
78 if: ${{ contains(github.event.head_commit.message, '[release') || github.event.inputs.level != '' }}
79
80 permissions:
81 contents: write
82
83 needs: [build-win32, build-win64]
84
85 steps:
86 - name: Checkout
87 uses: actions/checkout@v4
88 - name: Download from build-win32
89 uses: actions/download-artifact@v4
90 with:
91 name: build-win32
92 - name: Download from build-win64
93 uses: actions/download-artifact@v4
94 with:
95 name: build-win64
96 - name: Extract
97 run: unzip tewiinst32.zip && unzip tewiinst64.zip
98 - name: Delete old release
99 run: gh release delete "$(make get-version)" --cleanup-tag -y || true
100 env:
101 GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
102 - name: Release
103 run: gh release create -t "v$(make get-version)" "$(make get-version)" tewiinst32*.exe tewiinst64*.exe -n "Version \`$(make get-version)\` was build in this release"
104 env:
105 GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Note: See TracBrowser for help on using the repository browser.