Merge pull request #1616 from hammera/extend_braille_input #82
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Cross-compile with mingw | |
on: | |
workflow_dispatch: | |
push: | |
branches: [ master ] | |
paths: | |
- '**.h' | |
- '**.c' | |
- 'liblouis/liblouis/liblouis.h.in' | |
pull_request: | |
branches: [ master ] | |
paths: | |
- '**.h' | |
- '**.c' | |
- 'liblouis/liblouis/liblouis.h.in' | |
env: | |
LIBYAML_VERSION: 0.1.4 | |
jobs: | |
build: | |
name: Build for win64 | |
runs-on: ubuntu-latest | |
env: | |
HOST: x86_64-w64-mingw32 | |
PREFIX: /tmp/build/win64 | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 | |
with: | |
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Install dependencies | |
run: sudo apt-get update -qq && sudo apt-get install -y autoconf automake curl libtool make mingw-w64 pkg-config texinfo wine64 zip patch jq | |
- name: Build libyaml | |
run: | | |
curl -L https://github.com/yaml/libyaml/archive/${{ env.LIBYAML_VERSION }}.tar.gz | tar zx | |
cd libyaml-${{ env.LIBYAML_VERSION }} | |
patch -p1 < ../libyaml_mingw.patch | |
./bootstrap | |
./configure --host ${{ env.HOST }} --prefix=${{ env.PREFIX }} | |
make | |
make install | |
- name: Autogen && configure | |
run: | | |
./autogen.sh | |
./configure --host ${{ env.HOST }} --enable-ucs4 --prefix=${{ env.PREFIX }} CPPFLAGS="-I${{ env.PREFIX }}/include/" LDFLAGS="-L${{ env.PREFIX }}/lib/" | |
- name: Make | |
run: make LDFLAGS="-L${{ env.PREFIX }}/lib/ -avoid-version -Xcompiler -static-libgcc" | |
- name: Check | |
run: make check WINE=wine64 | |
- name: Store the test suite log | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 | |
with: | |
name: test-suite-w64.log | |
path: tests/test-suite.log | |
- name: Install | |
run: make install | |
- name: Zip up the build artifacts | |
run: ( cd ${{ env.PREFIX }}; zip -r liblouis.zip * ) | |
- name: Archive the build artifacts | |
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 | |
with: | |
name: liblouis-w64.zip | |
path: ${{ env.PREFIX }}/liblouis.zip | |
- name: Upload the assets to the snapshot release | |
# only upload to snapshot page if it is a push to master in the main repo | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository =='liblouis/liblouis'}} | |
uses: shogo82148/actions-upload-release-asset@8f032eff0255912cc9c8455797fd6d72f25c7ab7 # v1.7.5 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
upload_url: https://uploads.github.com/repos/liblouis/liblouis/releases/8031256/assets{?name,label} | |
asset_path: ${{ env.PREFIX }}/liblouis.zip | |
asset_name: liblouis-w64.zip | |
asset_content_type: application/zip | |
overwrite: true | |
- name: Edit the description of the snapshot release | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository =='liblouis/liblouis'}} | |
run: | | |
if ! curl -H "authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | |
-H "Accept: application/json" \ | |
-H "Content-type: application/json" \ | |
-X PATCH \ | |
"https://api.github.com/repos/liblouis/liblouis/releases/8031256" \ | |
-d "{\"tag_name\": \"snapshot\", \ | |
\"body\": \"Latest build: ${{ github.sha }}\"}" \ | |
2>/dev/null \ | |
| jq -e '.url'; \ | |
then \ | |
echo "Failed to edit release description" && \ | |
exit 1; \ | |
fi | |
# win32 build disabled for now: see https://github.com/liblouis/liblouis/issues/1135 | |
#build-w32: | |
# name: Build for win32 | |
# | |
# runs-on: ubuntu-latest | |
# env: | |
# HOST: i686-w64-mingw32 | |
# PREFIX: /tmp/build/win32 | |
# | |
# steps: | |
# - name: Harden Runner | |
# uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 | |
# with: | |
# egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | |
# | |
# - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
# - name: Install dependencies | |
# run: sudo apt-get update -qq && sudo apt-get install -y autoconf automake curl libtool make pkg-config texinfo zip patch | |
# - name: Install wine for 32-bit architecture | |
# run: | | |
# sudo apt-get update -qq | |
# sudo dpkg --add-architecture i386 | |
# sudo apt-get update | |
# sudo apt-get install -y fonts-wine libc6-dev-i386-x32-cross mingw-w64 mingw-w64-i686-dev wine-development wine32 # FIXME: in 20.4 wine-development will be just wine | |
# | |
# - name: Build libyaml | |
# run: | | |
# curl -L https://github.com/yaml/libyaml/archive/${{ env.LIBYAML_VERSION }}.tar.gz | tar zx | |
# cd libyaml-${{ env.LIBYAML_VERSION }} | |
# patch -p1 < ../libyaml_mingw.patch | |
# ./bootstrap | |
# ./configure --host ${{ env.HOST }} --prefix=${{ env.PREFIX }} | |
# make | |
# make install | |
# - name: Autogen && configure | |
# run: | | |
# ./autogen.sh | |
# ./configure --host ${{ env.HOST }} --enable-ucs4 --prefix=${{ env.PREFIX }} CFLAGS="-O0" CPPFLAGS="-I${{ env.PREFIX }}/include/" LDFLAGS="-L${{ env.PREFIX }}/lib/" | |
# - name: Make | |
# run: make LDFLAGS="-L${{ env.PREFIX }}/lib/ -avoid-version -Xcompiler -static-libgcc" | |
# - name: Check | |
# run: make check WINE=wine | |
# - name: Store the test suite log | |
# if: ${{ failure() }} | |
# uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 | |
# with: | |
# name: test-suite-w32.log | |
# path: tests/test-suite.log | |
# - name: Install | |
# run: make install | |
# | |
# - name: Zip up the build artifacts | |
# run: ( cd ${{ env.PREFIX }}; zip -r liblouis.zip * ) | |
# - name: Archive the build artifacts | |
# uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 | |
# with: | |
# name: liblouis-w32.zip | |
# path: ${{ env.PREFIX }}/liblouis.zip | |
# | |
# - name: Upload the assets to the snapshot release | |
# # only upload to snapshot page if it is a push to master in the main repo | |
# if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository =='liblouis/liblouis'}} | |
# uses: shogo82148/actions-upload-release-asset@8f032eff0255912cc9c8455797fd6d72f25c7ab7 # v1.7.5 | |
# with: | |
# github_token: ${{ secrets.GITHUB_TOKEN }} | |
# upload_url: https://uploads.github.com/repos/liblouis/liblouis/releases/8031256/assets{?name,label} | |
# asset_path: ${{ env.PREFIX }}/liblouis.zip | |
# asset_name: liblouis-w32.zip | |
# asset_content_type: application/zip | |
# overwrite: true |