5a1b65d089
Automate testing of any PR's. Updated README's explaining new processes.
102 lines
3 KiB
YAML
102 lines
3 KiB
YAML
################################################################################
|
|
# Build and Test tidy on the latest versions of all of the major platforms.
|
|
#
|
|
# - Build on multiple operating systems, and where possible, multiple
|
|
# architectures. On Windows, we will also build and test MingGW in
|
|
# addition to MSVC.
|
|
#
|
|
# - Report the version number for each binary that is built.
|
|
#
|
|
# - Run each binary against the regression test suite.
|
|
#
|
|
################################################################################
|
|
|
|
name: Build and Test
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'src/**'
|
|
- 'include/**'
|
|
- '.github/workflows/**'
|
|
pull_request:
|
|
paths:
|
|
- 'src/**'
|
|
- 'include/**'
|
|
- '.github/workflows/**'
|
|
|
|
jobs:
|
|
|
|
build_and_test:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
|
|
- os: ubuntu-latest
|
|
flags:
|
|
vers_command: "./tidy --version"
|
|
test_command: "ruby test.rb test"
|
|
|
|
- os: macOS-latest
|
|
flags: "'-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64'"
|
|
vers_command: "./tidy --version"
|
|
test_command: "ruby test.rb test"
|
|
|
|
- os: windows-latest
|
|
flags:
|
|
vers_command: "./tidy.exe --version"
|
|
test_command: "ruby test.rb test"
|
|
|
|
- os: windows-2016
|
|
flags: "-G 'MinGW Makefiles'"
|
|
vers_command: "./tidy --version"
|
|
test_command: "ruby test.rb test"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
|
|
# We'll use the windows-2016 instance to perform a MinGW build.
|
|
# Of course, we only want to install if this is the correct target.
|
|
- name: Install MinGW-w64
|
|
if: ${{matrix.os == 'windows-2016'}}
|
|
uses: egor-tensin/setup-mingw@v2
|
|
with:
|
|
platform: x64
|
|
|
|
- name: Build
|
|
working-directory: ${{github.workspace}}/build/cmake
|
|
run: cmake ../.. -DCMAKE_BUILD_TYPE=Release ${{matrix.flags}}
|
|
|
|
- name: Make
|
|
working-directory: ${{github.workspace}}/build/cmake
|
|
run: cmake --build . --config Release
|
|
|
|
# Windows MSVC is the only oddball here; why does it install the
|
|
# binary into a subfolder, unlike all of the other builds? Let's
|
|
# make everything else easier by relocating it to the same spot
|
|
# as all the other build locations.
|
|
- name: Move the exe to someplace sensible
|
|
if: ${{matrix.os == 'windows-latest'}}
|
|
run: move-item -path "${{github.workspace}}/build/cmake/Release/tidy.exe" -destination "${{github.workspace}}/build/cmake/"
|
|
|
|
- name: Show Version
|
|
working-directory: ${{github.workspace}}/build/cmake
|
|
run: ${{matrix.vers_command}}
|
|
|
|
- uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: 2.7
|
|
bundler-cache: true
|
|
|
|
- name: Bundle Install
|
|
working-directory: ${{github.workspace}}/regression_testing
|
|
run: bundle install
|
|
|
|
- name: Run Regression Test
|
|
working-directory: ${{github.workspace}}/regression_testing
|
|
run: ${{matrix.test_command}}
|
|
|