-
Notifications
You must be signed in to change notification settings - Fork 262
95 lines (83 loc) · 3.73 KB
/
ci-x86.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# **********************************************************
# 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