Skip to content

All

All #82

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: All
# Controls when the workflow will run
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
inputs:
modes:
description: 'modes'
required: true
type: string
default: '["gcc-14.1.0"]'
arch:
description: 'arch'
required: true
type: string
default: '["i686", "x86_64"]'
threading:
description: 'threading'
required: true
type: string
default: '["posix", "win32", "mcf"]'
exceptions:
description: 'exceptions'
required: true
type: string
default: '["dwarf", "seh", "sjlj"]'
crt:
description: 'crt'
required: true
type: string
default: '["msvcrt", "ucrt"]'
tagname:
description: 'tagname'
required: false
type: string
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# Build the complete toolchains
build:
strategy:
fail-fast: false
matrix:
mode: ${{ fromJSON(github.event.inputs.modes) }}
arch: ${{ fromJSON(github.event.inputs.arch) }}
threading: ${{ fromJSON(github.event.inputs.threading) }}
exceptions: ${{ fromJSON(github.event.inputs.exceptions) }}
crt: ${{ fromJSON(github.event.inputs.crt) }}
exclude:
- arch: 'i686'
exceptions: 'seh'
- arch: 'x86_64'
exceptions: 'dwarf'
defaults:
run:
shell: msys2 {0}
# The type of runner that the job will run on
runs-on: windows-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MSYS
update: true
install: >-
lndir
git
subversion
tar
zip
p7zip
make
patch
automake-wrapper
autoconf
autoconf-archive
libtool
flex
bison
gettext
gettext-devel
wget
sshpass
texinfo
autogen
dejagnu
pkgconf
dos2unix
- name: Change autocrlf
run: git config --global core.autocrlf input
shell: bash
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout the current repo
uses: actions/checkout@v4
with:
path: mingw64-builds-GHA
- name: Get build scripts
uses: actions/checkout@v4
with:
repository: starg2/mingw-builds
ref: custom
path: mingw-builds
- name: Show HEAD
run: git show --summary
working-directory: mingw-builds
- name: Install host toolchain (i686)
if: ${{ matrix.arch == 'i686' || matrix.exceptions == 'sjlj' }}
run: |
curl.exe -L -O https://github.com/starg2/mingw64-builds-GHA/releases/download/v2024-04-10/gcc-13.2.0_i686-${{ matrix.threading }}-${{ matrix.exceptions }}-${{ matrix.crt }}.zip
7z e gcc-13.2.0_i686-${{ matrix.threading }}-${{ matrix.exceptions }}-${{ matrix.crt }}.zip i686-13.2.0-release-${{ matrix.threading }}-${{ matrix.exceptions }}-${{ matrix.crt }}-rt_v12.7z
7z x i686-13.2.0-release-${{ matrix.threading }}-${{ matrix.exceptions }}-${{ matrix.crt }}-rt_v12.7z -o/d/toolchains
- name: Install host toolchain (x86_64)
if: ${{ matrix.arch == 'x86_64' || matrix.exceptions == 'sjlj' }}
run: |
curl.exe -L -O https://github.com/starg2/mingw64-builds-GHA/releases/download/v2024-04-10/gcc-13.2.0_x86_64-${{ matrix.threading }}-${{ matrix.exceptions }}-${{ matrix.crt }}.zip
7z e gcc-13.2.0_x86_64-${{ matrix.threading }}-${{ matrix.exceptions }}-${{ matrix.crt }}.zip x86_64-13.2.0-release-${{ matrix.threading }}-${{ matrix.exceptions }}-${{ matrix.crt }}-rt_v12.7z
7z x x86_64-13.2.0-release-${{ matrix.threading }}-${{ matrix.exceptions }}-${{ matrix.crt }}-rt_v12.7z -o/d/toolchains
- name: Build
run: >-
./build
--buildroot=/c/build/${{ matrix.mode }}
--mode=${{ matrix.mode }}
--arch=${{ matrix.arch }}
--exceptions=${{ matrix.exceptions }}
--rt-version=trunk
--threads=${{ matrix.threading }}
--with-default-msvcrt=${{ matrix.crt }}
--provided-toolchain=/d/toolchains
--enable-languages=c,c++
--jobs=4
--bin-compress
--src-compress
--logviewer-command=cat
--wait-for-logviewer
working-directory: mingw-builds
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.mode }}_${{ matrix.arch }}-${{ matrix.threading }}-${{ matrix.exceptions }}-${{ matrix.crt }}
path: C:/build/${{ matrix.mode }}/archives/*.7z
release:
if: ${{ github.event.inputs.tagname != '' }}
needs: build
runs-on: windows-latest
defaults:
run:
shell: pwsh
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
- name: Zip artifacts
run: ls -Directory | % { 7z a ($_.Name + '.zip') ($_.Name + '\*') -mx0 }
- uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.tagname }}
files: '*.zip'
draft: true