File: README.md
MinGW-W64-binaries
MinGW-W64 compiler binaries
MinGW-W64 online installer (VirusTotal), (sources).
The online installer provides GUI for selection parameters of build you need and archive extraction into selected dir.
It also creates a shortcut in start menu that runs terminal with added PATH to the compiler dir.
File: .github/workflows/build.yml
name: x86_64 and i686 release builds
on:
push:
tags:
- "-rt_-rev*"
jobs:
split-tag:
runs-on: ubuntu-latest
outputs:
gcc-version: ${{ steps.get-gcc-version.outputs.version }}
rt-version: ${{ steps.get-rt-version.outputs.version }}
mingw-rev: ${{ steps.get-mingw-revision.outputs.rev }}
steps:
- id: get-gcc-version
run: echo "version=$(echo ${{ github.ref_name }} | cut -d- -f1)" >> $GITHUB_OUTPUT
- id: get-rt-version
run: echo "version=$(echo ${{ github.ref_name }} | cut -d- -f2 | cut -c4-)" >> $GITHUB_OUTPUT
- id: get-mingw-revision
run: echo "rev=$(echo ${{ github.ref_name }} | cut -d- -f3 | cut -c4-)" >> $GITHUB_OUTPUT
download:
needs: split-tag
runs-on: windows-2022
steps:
- uses: actions/checkout@v6
with:
ref: 'develop'
- uses: msys2/setup-msys2@v2
with:
update: true
- name: Download sources
shell: msys2 {0}
run: >-
./build
--mode=gcc-${{ needs.split-tag.outputs.gcc-version }}
--buildroot=/c/buildroot
--jobs=4
--rev=${{ needs.split-tag.outputs.mingw-rev }}
--with-default-msvcrt=ucrt
--rt-version=${{ needs.split-tag.outputs.rt-version }}
--threads=mcf
--exceptions=seh
--arch=x86_64
--bin-compress
--enable-languages=c,c++,fortran
--logviewer-command=cat
--fetch-only
- name: Compress sources
run: 7z a src.7z src "-xr!.git"
working-directory: c:/buildroot
- name: Upload sources
uses: actions/upload-artifact@v7
with:
path: c:/buildroot/src.7z
compression-level: 0
archive: false build:
needs: [split-tag, download]
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
arch: [x86_64, i686]
threads: [posix, win32, mcf]
exceptions: [seh, dwarf]
msvcrt: [msvcrt, ucrt]
exclude:
- arch: x86_64
exceptions: dwarf
- arch: i686
exceptions: seh
- threads: mcf
msvcrt: msvcrt
steps:
- uses: actions/checkout@v6
with:
ref: 'develop'
- uses: msys2/setup-msys2@v2
with:
update: true
- name: Download sources
uses: actions/download-artifact@v8
with:
name: src.7z
path: c:/buildroot
- name: Extract sources
run: 7z x src.7z
working-directory: c:/buildroot
- name: Build
shell: msys2 {0}
run: >-
./build
--mode=gcc-${{ needs.split-tag.outputs.gcc-version }}
--buildroot=/c/buildroot
--jobs=4
--rev=${{ needs.split-tag.outputs.mingw-rev }}
--with-default-msvcrt=${{ matrix.msvcrt }}
--rt-version=${{ needs.split-tag.outputs.rt-version }}
--threads=${{ matrix.threads }}
--exceptions=${{ matrix.exceptions }}
--arch=${{ matrix.arch }}
--bin-compress
--enable-languages=c,c++,fortran
--logviewer-command=cat
- name: Upload
uses: actions/upload-artifact@v7
with:
name: bin-${{ matrix.arch }}-${{ matrix.threads }}-${{ matrix.exceptions }}-${{ matrix.msvcrt }}
path: c:/buildroot/archives/ release:
runs-on: ubuntu-latest
needs: build
steps:
- name: Download artifact
uses: actions/download-artifact@v8
with:
pattern: "bin-*"
path: ./
merge-multiple: true
- name: Upload to Release
id: upload_to_release
uses: softprops/action-gh-release@v1
with:
files: "*.7z"