1
0
Fork 0

Simplify package listing script and standardize workflows

The commit makes the following changes:
 - The package listing script now requires the user specify which package manager
   they're using. This approach resolves the ambiguity if a system has more than
   one package manager (ie: macports & brew)

 - Adds packages for Fedora, RedHat/CentOS, Arch, and OpenSuse

 - Eliminates unecessary code in the package manager script
   (more can be eliminate at the expense of complexity)

 - Made a couple minor fixes to the build script

 - Tried to further "standardize" the workflows as follows:

     - names are Compiler Version (Environment)

     - Sorted them alphabetically in their respective YAMLs

     - Minor spacing adjustment to align values (where it makes sense)

     - Dropped quotes around some of the string values because I'd
       rather our YAML be consistent and propper instead of changing our
       YAML to suite the limitations of an editor (can a different plugin
       or better parser be used?)

     - Added macOS workflows for Homebrew and MacPorts, both ready to
       go and tested, but with the build step just commented out
This commit is contained in:
krcroft 2019-10-28 12:57:54 -07:00
parent af6557ae70
commit 85039a6033
No known key found for this signature in database
GPG key ID: 94D8F8D0D171A64B
9 changed files with 458 additions and 539 deletions

View file

@ -1,48 +1,48 @@
name: "Linux builds"
name: Linux builds
on: push
jobs:
build_ubuntu_gcc9:
name: "GCC 9 (ubuntu-18.04)"
build_ubuntu_clang_8:
name: Clang 8 (ubuntu-18.04)
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: "Log environment"
run: ./scripts/log-env.sh
- name: Log environment
run: ./scripts/log-env.sh
- name: Install dependencies
run: sudo apt-get update && sudo apt install -y $(./scripts/list-build-dependencies.sh --compiler-version 9)
run: sudo apt-get update && sudo apt install -y $(./scripts/list-build-dependencies.sh -p apt --compiler clang --compiler-version 8)
- name: Build
run: ./scripts/build.sh --compiler-version 9 --lto
- name: "Summarize warnings"
run: ./scripts/count-warnings.py build.log
run: ./scripts/build.sh --compiler clang --compiler-version 8 --lto
- name: Summarize warnings"
run: ./scripts/count-warnings.py build.log
build_ubuntu_gcc_defaults:
name: "GCC"
build_ubuntu_matrix_gcc:
name: GCC
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-18.04, ubuntu-16.04]
steps:
- uses: actions/checkout@v1
- name: "Log environment"
run: ./scripts/log-env.sh
- name: Log environment
run: ./scripts/log-env.sh
- name: Install dependencies
run: sudo apt-get update && sudo apt install -y $(./scripts/list-build-dependencies.sh)
run: sudo apt-get update && sudo apt install -y $(./scripts/list-build-dependencies.sh -p apt)
- name: Build
run: ./scripts/build.sh
- name: "Summarize warnings"
run: ./scripts/count-warnings.py build.log
- name: Summarize warnings
run: ./scripts/count-warnings.py build.log
build_ubuntu_clang_8:
name: "Clang 8 (ubuntu-18.04)"
build_ubuntu_gcc9:
name: GCC 9 (ubuntu-18.04)
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: "Log environment"
run: ./scripts/log-env.sh
- name: Log environment
run: ./scripts/log-env.sh
- name: Install dependencies
run: sudo apt-get update && sudo apt install -y $(./scripts/list-build-dependencies.sh --compiler clang --compiler-version 8)
run: sudo apt-get update && sudo apt install -y $(./scripts/list-build-dependencies.sh -p apt --compiler-version 9)
- name: Build
run: ./scripts/build.sh --compiler clang --compiler-version 8 --lto
- name: "Summarize warnings"
run: ./scripts/count-warnings.py build.log
run: ./scripts/build.sh --compiler-version 9 --lto
- name: Summarize warnings
run: ./scripts/count-warnings.py build.log

View file

@ -1,16 +1,59 @@
name: "macOS builds"
name: macOS builds
on: push
jobs:
build_macos_clang:
name: "Clang (macOS-10.14)"
build_macos_xcode_clang:
name: Clang 10 (Xcode)
runs-on: macOS-10.14
steps:
- uses: actions/checkout@v1
- name: "Log environment"
run: ./scripts/log-env.sh
- name: Log environment
run: ./scripts/log-env.sh
- name: Install dependencies
run: brew install $(./scripts/list-build-dependencies.sh --compiler clang)
run: brew install $(./scripts/list-build-dependencies.sh -p brew --compiler clang)
- name: Build
run: ./scripts/build.sh --compiler clang --lto
- name: "Summarize warnings"
run: python3 ./scripts/count-warnings.py build.log
run: ./scripts/build.sh --compiler clang --lto
- name: Summarize warnings
run: python3 ./scripts/count-warnings.py build.log
# build_macos_brew_gcc9:
# name: GCC 9 (Homebrew)
# runs-on: macOS-10.14
# steps:
# - uses: actions/checkout@v1
# - name: Log environment
# run: ./scripts/log-env.sh
# - name: Install dependencies
# run: brew install $(./scripts/list-build-dependencies.sh -p brew --compiler-version 9)
# - name: Build
# run: echo ./scripts/build.sh --compiler-version 9 --lto
# - name: Summarize warnings
# run: echo python3 ./scripts/count-warnings.py build.log
# build_macos_macports_gcc9:
# name: GCC 9 (MacPorts)
# runs-on: macOS-10.14
# steps:
# - uses: actions/checkout@v1
# - name: Install MacPorts
# run: |
# # xcode-select --install || true
# # sudo xcodebuild -license || true
# git clone --quiet --depth=1 https://github.com/macports/macports-base.git
# cd macports-base
# ./configure
# make -j"$(sysctl -n hw.physicalcpu || echo 4)"
# sudo make install
#
# - name: Install dependencies
# run: |
# PATH="/opt/local/sbin:/opt/local/bin:${PATH}"
# sudo port -q selfupdate || true
# sudo port -q install $(./scripts/list-build-dependencies.sh -p macports --compiler-version 9)
#
# - name: Build
# run: echo ./scripts/build.sh --compiler-version mp-9 --bin-path /opt/local/bin
# - name: Summarize warnings
# run: echo python3 ./scripts/count-warnings.py build.log

View file

@ -3,19 +3,18 @@ name: Static code analysis
on: [push]
jobs:
build_clang_static_analyser:
name: "Clang static analyzer"
name: Clang static analyzer
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: "Log environment"
run: ./scripts/log-env.sh
- run: sudo apt update
- name: "Install packages"
run: sudo apt-get install libsdl1.2-dev libsdl-net1.2-dev libsdl-sound1.2-dev python3-setuptools
- name: "Install scan-build (Python version)"
run: sudo pip3 install scan-build beautifulsoup4 html5lib
- name: Log environment
run: ./scripts/log-env.sh
- run: sudo apt update
- name: Install packages
run: sudo apt-get install libsdl1.2-dev libsdl-net1.2-dev libsdl-sound1.2-dev python3-setuptools
- name: Install scan-build (Python version)
run: sudo pip3 install scan-build beautifulsoup4 html5lib
- name: Build
run: |
# build steps
@ -25,7 +24,7 @@ jobs:
./configure
intercept-build make -j "$(nproc)"
- name: Analyze
run: analyze-build -v -o report --html-title="dosbox-staging (${GITHUB_SHA:0:8})"
run: analyze-build -v -o report --html-title="dosbox-staging (${GITHUB_SHA:0:8})"
- uses: actions/upload-artifact@master
with:
name: report

View file

@ -1,23 +1,96 @@
# SPDX-License-Identifier: GPL-2.0-or-later
name: "Windows builds"
name: Windows builds
on: push
jobs:
build_msvc_debug:
name: "MSVC 14 Debug (win-2019)"
build_msys2_clang_32:
name: Clang 8 i686 (MSYS2)
runs-on: windows-2019
env:
CHERE_INVOKING: yes
steps:
- uses: actions/checkout@v1
- name: "Log environment"
- name: Install msys2 environment
run: choco install msys2 --no-progress
- name: Log environment
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/log-env.sh"
- name: Install dependencies
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/list-build-dependencies.sh -p msys2 --compiler clang --bit-depth 32 | xargs pacman -S --noconfirm"
- name: Build
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/build.sh --compiler clang --bit-depth 32 --bin-path /mingw32/bin"
- name: Summarize warnings
run: .\scripts\count-warnings.py build.log
build_msys2_clang_64:
name: Clang 8 x86_64 (MSYS2)
runs-on: windows-2019
env:
CHERE_INVOKING: yes
steps:
- uses: actions/checkout@v1
- name: Install msys2 environment
run: choco install msys2 --no-progress
- name: Log environment
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/log-env.sh"
- name: Install dependencies
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/list-build-dependencies.sh -p msys2 --compiler clang | xargs pacman -S --noconfirm"
- name: Build
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/build.sh --compiler clang --bin-path /mingw64/bin"
- name: Summarize warnings
run: .\scripts\count-warnings.py build.log
build_msys2_gcc_32:
name: GCC 9 i686 (MSYS2)
runs-on: windows-2019
env:
CHERE_INVOKING: yes
steps:
- uses: actions/checkout@v1
- name: Install msys2 environment
run: choco install msys2 --no-progress
- name: Log environment
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/log-env.sh"
- name: Install dependencies
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/list-build-dependencies.sh -p msys2 --bit-depth 32 | xargs pacman -S --noconfirm"
- name: Build
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/build.sh --bit-depth 32 --bin-path /mingw32/bin"
- name: Summarize warnings
run: .\scripts\count-warnings.py build.log
build_msys2_gcc_64:
name: GCC 9 x86_64 (MSYS2)
runs-on: windows-2019
env:
CHERE_INVOKING: yes
steps:
- uses: actions/checkout@v1
- name: Install msys2 environment
run: choco install msys2 --no-progress
- name: Log environment
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/log-env.sh"
- name: Install dependencies
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/list-build-dependencies.sh -p msys2 | xargs pacman -S --noconfirm"
- name: Build
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/build.sh --bin-path /mingw64/bin"
- name: Summarize warnings
run: .\scripts\count-warnings.py build.log
build_msvc_debug:
name: MSVC Debug x86 (win-2019)
runs-on: windows-2019
steps:
- uses: actions/checkout@v1
- name: Log environment
shell: pwsh
run: .\scripts\log-env.ps1
- name: "Install packages"
run: .\scripts\log-env.ps1
- name: Install packages
shell: pwsh
run: |
vcpkg install libpng sdl1 sdl1-net
vcpkg integrate install
- name: "Build"
- name: Build
shell: pwsh
env:
PATH: '${env:PATH};C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64'
@ -26,21 +99,20 @@ jobs:
cd visualc_net
MSBuild -m dosbox.sln -p:Configuration=Debug
build_msvc_release:
name: "MSVC 14 Release (win-2019)"
name: MSVC Release x86 (win-2019)
runs-on: windows-2019
steps:
- uses: actions/checkout@v1
- name: "Log environment"
- uses: actions/checkout@v1
- name: Log environment
shell: pwsh
run: .\scripts\log-env.ps1
- name: "Install packages"
run: .\scripts\log-env.ps1
- name: Install packages
shell: pwsh
run: |
vcpkg install libpng sdl1 sdl1-net
vcpkg integrate install
- name: "Build"
- name: Build
shell: pwsh
env:
PATH: '${env:PATH};C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64'
@ -50,93 +122,3 @@ jobs:
MSBuild -m dosbox.sln -p:Configuration=Release
build_msys2_gcc_64:
name: MSYS2 GCC-9 x86_64
runs-on: windows-2019
env:
CHERE_INVOKING: yes
steps:
- uses: actions/checkout@v1
- name: Install msys2 environment
run: choco install msys2 --no-progress
- name: "Log environment"
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/log-env.sh"
- name: Install dependencies
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/list-build-dependencies.sh | xargs pacman -S --noconfirm"
- name: Build
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/build.sh --bin-path /mingw64/bin"
- name: Summarize warnings
run: .\scripts\count-warnings.py build.log
build_msys2_gcc_32:
name: MSYS2 GCC-9 i686
runs-on: windows-2019
env:
CHERE_INVOKING: yes
steps:
- uses: actions/checkout@v1
- name: Install msys2 environment
run: choco install msys2 --no-progress
- name: "Log environment"
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/log-env.sh"
- name: Install dependencies
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/list-build-dependencies.sh --bit-depth 32 | xargs pacman -S --noconfirm"
- name: Build
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/build.sh --bit-depth 32 --bin-path /mingw32/bin"
- name: Summarize warnings
run: .\scripts\count-warnings.py build.log
build_msys2_clang_64:
name: MSYS2 Clang-8 x86_64
runs-on: windows-2019
env:
CHERE_INVOKING: yes
steps:
- uses: actions/checkout@v1
- name: Install msys2 environment
run: choco install msys2 --no-progress
- name: "Log environment"
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/log-env.sh"
- name: Install dependencies
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/list-build-dependencies.sh --compiler clang | xargs pacman -S --noconfirm"
- name: Build
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/build.sh --compiler clang --bin-path /mingw64/bin"
- name: Summarize warnings
run: .\scripts\count-warnings.py build.log
build_msys2_clang_32:
name: MSYS2 Clang-8 i686
runs-on: windows-2019
env:
CHERE_INVOKING: yes
steps:
- uses: actions/checkout@v1
- name: Install msys2 environment
run: choco install msys2 --no-progress
- name: "Log environment"
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/log-env.sh"
- name: Install dependencies
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/list-build-dependencies.sh --compiler clang --bit-depth 32 | xargs pacman -S --noconfirm"
- name: Build
run: C:\tools\msys64\usr\bin\bash -lc "./scripts/build.sh --compiler clang --bit-depth 32 --bin-path /mingw32/bin"
- name: Summarize warnings
run: .\scripts\count-warnings.py build.log