mirror of
https://github.com/asdlokj1qpi233/subconverter.git
synced 2025-10-26 02:42:25 +00:00
178 lines
5.9 KiB
YAML
178 lines
5.9 KiB
YAML
name: GitHub CI
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
tags:
|
|
- '**'
|
|
workflow_dispatch:
|
|
pull_request:
|
|
|
|
concurrency:
|
|
group: ${{ github.ref }}-${{ github.workflow }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
linux_build:
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- arch: x86
|
|
artifact: subconverter_linux32
|
|
os: ubuntu-latest
|
|
- arch: amd64
|
|
artifact: subconverter_linux64
|
|
os: ubuntu-latest
|
|
- arch: armv7
|
|
artifact: subconverter_armv7
|
|
os: ubuntu-latest
|
|
- arch: aarch64
|
|
artifact: subconverter_aarch64
|
|
os: ubuntu-latest
|
|
runs-on: ${{ matrix.os }}
|
|
name: Linux ${{ matrix.arch }} Build
|
|
steps:
|
|
- name: Checkout base
|
|
uses: actions/checkout@v4
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
- name: Add commit id into version
|
|
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
|
|
- name: Build
|
|
run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:${{ matrix.arch }}-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ matrix.artifact }}
|
|
path: subconverter/
|
|
- name: Package Release
|
|
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
|
|
run: tar czf ${{ matrix.artifact }}.tar.gz subconverter
|
|
- name: Draft Release
|
|
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: ${{ matrix.artifact }}.tar.gz
|
|
draft: true
|
|
|
|
macos_build:
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- arch: x86
|
|
artifact: subconverter_darwin64
|
|
os: macos-13
|
|
- arch: arm
|
|
artifact: subconverter_darwinarm
|
|
os: macos-14
|
|
runs-on: ${{ matrix.os }}
|
|
name: macOS ${{ matrix.arch }} Build
|
|
steps:
|
|
- name: Checkout base
|
|
uses: actions/checkout@v4
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Add commit id into version
|
|
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
run: SHA=$(git rev-parse --short HEAD) && sed -i -e 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
|
|
- name: Build
|
|
run: bash scripts/build.macos.release.sh
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ matrix.artifact }}
|
|
path: subconverter/
|
|
- name: Package Release
|
|
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
|
|
run: tar czf ${{ matrix.artifact }}.tar.gz subconverter
|
|
- name: Draft Release
|
|
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: ${{ matrix.artifact }}.tar.gz
|
|
draft: true
|
|
|
|
windows_build:
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- arch: x86
|
|
artifact: subconverter_win32
|
|
env: i686
|
|
msystem: MINGW32
|
|
- arch: amd64
|
|
artifact: subconverter_win64
|
|
env: x86_64
|
|
msystem: MINGW64
|
|
runs-on: windows-latest
|
|
name: Windows ${{ matrix.arch }} Build
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
- name: Checkout base
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '16'
|
|
|
|
- name: Setup MSYS2
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
update: true
|
|
install: base-devel git mingw-w64-${{ matrix.env }}-gcc mingw-w64-${{ matrix.env }}-cmake mingw-w64-${{ matrix.env }}-pcre2 patch
|
|
msystem: ${{ matrix.msystem }}
|
|
path-type: inherit
|
|
|
|
# - name: Downgrade MinGW-w64 (i686)
|
|
# if: matrix.env == 'i686'
|
|
# run: |
|
|
# pacman -Sy --noconfirm
|
|
# pacman -U --noconfirm https://repo.msys2.org/mingw/i686/mingw-w64-i686-gcc-13.2.0-1-any.pkg.tar.zst
|
|
# pacman -U --noconfirm https://repo.msys2.org/mingw/i686/mingw-w64-i686-crt-11.0.0-1-any.pkg.tar.zst
|
|
|
|
- name: Check GCC Version
|
|
run: gcc --version
|
|
|
|
- name: Set Compiler Flags
|
|
run: |
|
|
echo "CFLAGS=-fcommon -static" >> $GITHUB_ENV
|
|
echo "CXXFLAGS=-fcommon -static" >> $GITHUB_ENV
|
|
echo "LDFLAGS=-static -static-libgcc -static-libstdc++" >> $GITHUB_ENV
|
|
|
|
- name: Remove pkg-config
|
|
run: rm -f C:/Strawberry/perl/bin/pkg-config C:/Strawberry/perl/bin/pkg-config.bat /mingw32/bin/pkg-config*
|
|
|
|
- name: Add commit id into version
|
|
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
|
|
|
|
- name: Build
|
|
run: bash scripts/build.windows.release.sh
|
|
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ matrix.artifact }}
|
|
path: subconverter/
|
|
|
|
- name: Package Release
|
|
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
|
|
run: 7z a ${{ matrix.artifact }}.7z subconverter/
|
|
|
|
- name: Draft Release
|
|
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: ${{ matrix.artifact }}.7z
|
|
draft: true
|