Rev 265 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
# $Id: build.yml 266 2024-10-05 09:08:11Z nishi $
name: "Build Tewi HTTPd"
on:
workflow_dispatch:
inputs:
release:
description: "release or not"
type: boolean
default: true
required: true
push:
concurrency:
group: "build"
cancel-in-progress: true
jobs:
build-win32:
name: "Build for Windows 32-bit"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install nsis mingw-w64
- name: Get OpenSSL
run: git clone https://github.com/clamwin/openssl
- name: Make it use the correct library
run: cp openssl/lib/mingw/x86/*.a openssl/lib/
- name: Build
run: ./installer.sh win32
- name: Rename
run: mv install-nossl.exe tewiinst32-nossl.exe && mv install-ssl.exe tewiinst32-ssl.exe
- name: Create a zipfile
run: zip -rv tewiinst32.zip tewiinst32-*.exe
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-win32
path: tewiinst32.zip
build-win64:
name: "Build for Windows 64-bit"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install nsis mingw-w64
- name: Get OpenSSL
run: git clone https://github.com/clamwin/openssl
- name: Make it use the correct library
run: cp openssl/lib/mingw/x64/*.a openssl/lib/
- name: Build
run: ./installer.sh win64
- name: Rename
run: mv install-nossl.exe tewiinst64-nossl.exe && mv install-ssl.exe tewiinst64-ssl.exe
- name: Create a zipfile
run: zip -rv tewiinst64.zip tewiinst64-*.exe
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-win64
path: tewiinst64.zip
release:
name: "Release"
runs-on: ubuntu-latest
if: ${{ contains(github.event.head_commit.message, '[forcerebuild]') || contains(github.event.head_commit.message, '[release') || github.event.inputs.release }}
permissions:
contents: write
needs: [build-win32, build-win64]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download from build-win32
uses: actions/download-artifact@v4
with:
name: build-win32
- name: Download from build-win64
uses: actions/download-artifact@v4
with:
name: build-win64
- name: Extract
run: unzip tewiinst32.zip && unzip tewiinst64.zip
- name: Delete old release
run: gh release delete "$(make get-version)" --cleanup-tag -y || true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Release
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"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}