From 121cd377539da3d91c8d44556d0962331444f3b4 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 17 Jan 2022 14:05:41 +1000 Subject: [PATCH] CI: split and rename the workflows to windows/macos/linux "main" is a bit non-descriptive, let's name them after the platforms we run them on. Splitting them up allows us to be less selective on how we run the various workflows, e.g. always running the linux one. --- .github/workflows/linux.yml | 43 ++++++++++++++ .github/workflows/macos.yml | 40 +++++++++++++ .github/workflows/main.yml | 108 ---------------------------------- .github/workflows/windows.yml | 47 +++++++++++++++ 4 files changed, 130 insertions(+), 108 deletions(-) create mode 100644 .github/workflows/linux.yml create mode 100644 .github/workflows/macos.yml delete mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..a578fc6 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,43 @@ +name: linux + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# Set permissions at the job level. +permissions: {} + +jobs: + linux: + runs-on: ubuntu-20.04 + permissions: + contents: read + strategy: + matrix: + compiler: [clang, gcc] + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + - uses: actions/setup-python@v2 + with: + python-version: '3.9' + - name: Install dependencies + run: | + python -m pip install --upgrade meson + sudo apt install -y \ + doxygen libxcb-xkb-dev valgrind ninja-build \ + libwayland-dev wayland-protocols bison graphviz + - name: Setup + run: | + meson setup build + env: + CC: ${{ matrix.compiler }} + - name: Build + run: | + meson compile -C build + - name: Test + run: + meson test -C build --print-errorlogs --setup=valgrind --no-suite python-tests diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 0000000..077c8ed --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,40 @@ +name: macos + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# Set permissions at the job level. +permissions: {} + +jobs: + macos: + runs-on: macos-10.15 + permissions: + contents: read + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + - uses: actions/setup-python@v2 + with: + python-version: '3.9' + - name: Install dependencies + run: | + python -m pip install --upgrade meson + brew install libxml2 doxygen bison ninja + brew link bison --force + env: + HOMEBREW_NO_AUTO_UPDATE: 1 + HOMEBREW_NO_INSTALL_CLEANUP: 1 + - name: Setup + run: | + PATH="/usr/local/opt/bison/bin:${PATH}" meson setup -Denable-wayland=false -Denable-x11=false build + - name: Build + run: | + PATH="/usr/local/opt/bison/bin:${PATH}" meson compile -C build + - name: Test + run: + meson test -C build --print-errorlogs diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index cbae406..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,108 +0,0 @@ -name: CI - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -# Set permissions at the job level. -permissions: {} - -jobs: - linux: - runs-on: ubuntu-20.04 - permissions: - contents: read - strategy: - matrix: - compiler: [clang, gcc] - steps: - - uses: actions/checkout@v2 - with: - persist-credentials: false - - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - name: Install dependencies - run: | - python -m pip install --upgrade meson - sudo apt install -y \ - doxygen libxcb-xkb-dev valgrind ninja-build \ - libwayland-dev wayland-protocols bison graphviz - - name: Setup - run: | - meson setup build - env: - CC: ${{ matrix.compiler }} - - name: Build - run: | - meson compile -C build - - name: Test - run: - meson test -C build --print-errorlogs --setup=valgrind --no-suite python-tests - - macos: - runs-on: macos-10.15 - permissions: - contents: read - steps: - - uses: actions/checkout@v2 - with: - persist-credentials: false - - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - name: Install dependencies - run: | - python -m pip install --upgrade meson - brew install libxml2 doxygen bison ninja - brew link bison --force - env: - HOMEBREW_NO_AUTO_UPDATE: 1 - HOMEBREW_NO_INSTALL_CLEANUP: 1 - - name: Setup - run: | - PATH="/usr/local/opt/bison/bin:${PATH}" meson setup -Denable-wayland=false -Denable-x11=false build - - name: Build - run: | - PATH="/usr/local/opt/bison/bin:${PATH}" meson compile -C build - - name: Test - run: - meson test -C build --print-errorlogs - - windows: - runs-on: windows-2019 - permissions: - contents: read - steps: - - uses: actions/checkout@v2 - with: - persist-credentials: false - - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - name: Install dependencies - shell: powershell - run: | - python -m pip install --upgrade meson - Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.10.1/ninja-win.zip -OutFile ninja.zip - Invoke-WebRequest -Uri https://github.com/lexxmark/winflexbison/releases/download/v2.5.23/win_flex_bison-2.5.23.zip -OutFile win_flex_bison.zip - Expand-Archive -Path win_flex_bison.zip -DestinationPath bin - Expand-Archive -Path ninja.zip -DestinationPath bin - Write-Output ((Get-Location).ToString() + "./bin") | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 - - name: Setup - shell: cmd - run: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 - meson setup -Denable-wayland=false -Denable-x11=false -Denable-docs=false -Denable-xkbregistry=false build - env: - CC: cl - - name: Build - shell: cmd - run: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 - meson compile -C build - - name: Test - run: - meson test -C build --print-errorlogs diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000..e7a2856 --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,47 @@ +name: windows + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# Set permissions at the job level. +permissions: {} + +jobs: + windows: + runs-on: windows-2019 + permissions: + contents: read + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + - uses: actions/setup-python@v2 + with: + python-version: '3.9' + - name: Install dependencies + shell: powershell + run: | + python -m pip install --upgrade meson + Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.10.1/ninja-win.zip -OutFile ninja.zip + Invoke-WebRequest -Uri https://github.com/lexxmark/winflexbison/releases/download/v2.5.23/win_flex_bison-2.5.23.zip -OutFile win_flex_bison.zip + Expand-Archive -Path win_flex_bison.zip -DestinationPath bin + Expand-Archive -Path ninja.zip -DestinationPath bin + Write-Output ((Get-Location).ToString() + "./bin") | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + - name: Setup + shell: cmd + run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 + meson setup -Denable-wayland=false -Denable-x11=false -Denable-docs=false -Denable-xkbregistry=false build + env: + CC: cl + - name: Build + shell: cmd + run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 + meson compile -C build + - name: Test + run: + meson test -C build --print-errorlogs