Fix doxygen and cmake install issues on runners (#2518) #288
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
# ********************************************************** | |
# Copyright (c) 2020-2024 Google, Inc. All rights reserved. | |
# ********************************************************** | |
# Dr. Memory: the memory debugger | |
# | |
# This library is free software; you can redistribute it and/or | |
# modify it under the terms of the GNU Lesser General Public | |
# License as published by the Free Software Foundation; | |
# version 2.1 of the License, and no later version. | |
# | |
# This library is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
# Library General Public License for more details. | |
# | |
# You should have received a copy of the GNU Lesser General Public | |
# License along with this library; if not, write to the Free Software | |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
# Github Actions workflow for x86 Continuous Integration testing. | |
name: ci-x86 | |
on: | |
# Run on pushes to master and on pull request changes, including from a | |
# forked repo with no "push" trigger, while avoiding duplicate triggers. | |
push: | |
branches: | |
- master | |
pull_request: | |
types: [opened, reopened, synchronize] | |
# Manual trigger using the Actions page. May remove when integration complete. | |
workflow_dispatch: | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
# 64-bit and 32-bit Linux build with gcc and tests: | |
x86: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: recursive | |
# Cancel any prior runs for a PR (but do not cancel master branch runs). | |
- uses: n1hility/cancel-previous-runs@v2 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
if: ${{ github.event_name == 'pull_request' }} | |
# We also need origin/master for pre-commit source file checks in runsuite.cmake. | |
# But fetching multiple branches isn't supported yet: actions/checkout#214 | |
# Pending PR that adds this support actions/checkout#155 | |
# TODO i#4549: When necessary support is available, remove/replace the | |
# workaround here and from every job in other Github Actions CI workflows. | |
- name: Fetch Sources | |
run: git fetch --no-tags --depth=1 origin master | |
# Install multilib for non-cross-compiling Linux build. | |
# GA CI uses packages.microsoft.com which is missing i386 packages, and | |
# attempts at using apt with us.archive-ubuntu.com hit dep issues: | |
# so we manually install the libunwind i386 packages we need. | |
- name: Create Build Environment | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install doxygen jsonlint g++-multilib libunwind-dev \ | |
zlib1g zlib1g-dev | |
sudo add-apt-repository 'deb [arch=i386] http://us.archive.ubuntu.com/ubuntu focal main' | |
apt download libunwind8:i386 libunwind-dev:i386 liblzma5:i386 \ | |
zlib1g:i386 zlib1g-dev:i386 | |
mkdir ../extract | |
for i in *.deb; do dpkg-deb -x $i ../extract; done | |
# find_package(ZLIB) doesn't find /lib32, yet ld.so seems to need lib32, | |
# so we do both: | |
sudo rsync -av ../extract/usr/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ | |
sudo rsync -av ../extract/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ | |
sudo rsync -av ../extract/usr/lib/i386-linux-gnu/ /lib32/ | |
sudo rsync -av ../extract/lib/i386-linux-gnu/ /lib32/ | |
sudo rsync -av ../extract/usr/include/i386-linux-gnu/ /usr/include/ | |
rm *.deb | |
# Downgrade from cmake 3.20 to avoid 32-bit toolchain problems (DRi#4830). | |
- name: Downgrade cmake | |
uses: jwlawson/actions-setup-cmake@v2 | |
with: | |
cmake-version: '3.19.7' | |
- name: Run Suite | |
working-directory: ${{ github.workspace }} | |
run: ./tests/runsuite_wrapper.pl travis |