1
0
Fork 0
Commit graph

141 commits

Author SHA1 Message Date
Patryk Obara
ac01935d70 Introduce gating based on MSVC warnings
This is the last compiler setup we have, that was missing a warning
counter. Initial limit we use is different than number reported by MSVC
internally, because MSVC simply sums warnings from all projects (without
removing duplicates, the way our script does).
2020-05-09 19:00:31 +02:00
Patryk Obara
4ed5f93e9c Update allowed warnings limits 2020-05-04 17:55:32 +02:00
Patryk Obara
bf614c61b7 Prevent platform builds failure
Don't count warnings if there's no build log.
2020-05-04 09:09:45 +02:00
Troy Campbell
e417d06289 Scan Windows release package using Microsoft Defender
Things aren't perfect, but they're the best we can do given what we're
left to work with. For example:

- We cannot update the virus signatures, because that command simply
fails, despite being copy-and-paste'd from Microsoft's documentation.

- When queried, Windows reports its virus signature age is
4,294,967,295 days old, which, on geological time scales, pre-dates
even the Pleistocene era by 9.7 million years.

Despite these issues, my hunch is that the signatures are current as of
the date when the VM's base-image was generated; and because we're in
the Holocene era of zero-day network threats, my guess is GitHub is
re-generating images at least weekly if not more frequently (and sure
enough, Defender catches the EICAR dummy virus.

Note that we're not using Start-MpScan because it does not provide any
useful output on status of scans (indeed!), so I've moved that here into
the commit message.
2020-05-04 08:06:08 +02:00
Patryk Obara
f18800760d Update allowed warnings limits 2020-04-29 21:52:03 +02:00
krcroft
e62d903d6a AV scan the macOS package prior to upload 2020-04-29 21:04:30 +02:00
krcroft
e6311d36b8 AV scan the Linux package prior to upload 2020-04-29 21:04:30 +02:00
kcgen
1bd770b5b4 Cleanup and add warning count to platform build 2020-04-29 03:17:14 +02:00
krcroft
106b45ef2d Move to GitHub's v2 API when checking out
v2 will:
- Checkout over SSH
- use Git's REST API, when git is version 2.18 or newer
- No longer detaches HEAD when checking out a branch
- Fetches one-commit deep by default

When building releases where we expect full history plus tags,
we explicitly get them with `git fetch --prune --unshallow`.
2020-04-27 03:52:41 +02:00
kcgen
2f4830830e Add nightly ARM & IBM platform builds 2020-04-27 03:32:26 +02:00
krcroft
91ccfa3afc Sync PVS Studio with upstream 2020-04-21 18:02:40 +02:00
Patryk Obara
4f607a3bcc Update snapshot build to use Ubuntu 18.04 LTS
Ubuntu 16.04 would provide better distro compatibility, but we need SDL
in version 2.0.5 or newer to enable resizable window support on Linux.

Pretty soon Ubuntu 20.04 LTS will be released, so targetting previous
LTS release should be enough.
2020-04-16 17:01:17 +02:00
Patryk Obara
66377f1726 Package icons in Linux snapshot builds 2020-04-15 23:55:48 +02:00
krcroft
88dd33b7de Reset the Windows MSYS2 cache incrementer 2020-04-15 14:26:29 +02:00
krcroft
25e9cfe491 Update allowed warning limits 2020-04-15 14:26:29 +02:00
krcroft
9d3f982f52 Enable strict aliasing for release builds 2020-04-15 14:26:29 +02:00
Patryk Obara
cee4f1adba Update allowed warnings limits
Clang in MSYS2 got updated to Clang 10, and now detects some warnings,
that were earlier marked only by GCC.
2020-04-13 14:32:49 +02:00
Patryk Obara
f5b0b0736c Update allowed warnings limits 2020-04-10 11:20:17 +02:00
krcroft
278d699128
Update allowed warnings limits 2020-04-05 21:40:22 -07:00
krcroft
ce369221e7 Update allowed warnings limits 2020-04-04 04:10:06 +02:00
krcroft
78ae277d28 Expand use and support for LTO and FDO builds
Adds LTO to the CI build for Linux, which bring it as close as possible
to the planned formal release, which will additionally use FDO.

Adds some helper scripts to work with FDO files.

Improves the build notes for how to create and use FDO files.
2020-04-01 08:03:39 +02:00
Patryk Obara
71f892d7ea Cleanup workflow files 2020-03-31 11:11:26 +02:00
Patryk Obara
abb6e12044 Move PVS Studio static analysis to a separate file
This job depends on credentials stored in GitHub secrets, therefore
fails for pull requests created by new contributors out of their forked
repos.
2020-03-31 11:11:20 +02:00
Patryk Obara
de7289221b Update maintainers list in workflow 2020-03-29 23:05:27 +02:00
Patryk Obara
d4b2f2167a Update allowed warnings limits 2020-03-28 05:41:04 +01:00
krcroft
241f6d1c41 Update allowed warning count 2020-03-28 03:04:25 +01:00
krcroft
c6f45effab Update PVS Studio to version 7.06.37052.34 2020-03-28 03:04:25 +01:00
krcroft
2fc6771046 Use ISO date format for ccache keys 2020-03-25 16:20:13 +01:00
krcroft
2c8db8fbe4 Use ccache in the CI workflows 2020-03-24 03:42:04 +01:00
Patryk Obara
7957396d32 Turn on CI jobs for pull_request event
This will trigger CI jobs automatically when pull-request is
created/updated. Until now we used only push event, as it was enough to
handle all automatic jobs from repository maintainers, but this does not
work for pull requests triggered by external collaborators.

We can't simply turn on new event, as it results in duplicate jobs when
PR is created by maintainer, so additional "if" filter is needed to
prevent duplicates from running. GitHub still shows "empty jobs" in some
parts of UI, but at least they don't run and fight for resources.

Unfortunately, GitHub Actions "if" functionality is fairly limited at
the moment:

- it does not work on workflows, only specific jobs
- it does not support array literals (that's why maintainer list is
  passed as a string)
- it can't access workflow env variables (that's why maintainer list is
  duplicated)
- it does not support regular expressions
- seems to have problem with using unary "!" operator and nested boolean
  expressions…
- … and official documentation is pretty misleading by suggesting it
  can do many of those things :(

that's why this "if" line looks like it does and is duplicated in every
workflow.
2020-03-24 01:48:45 +01:00
krcroft
f1b9e5046d Update allowed warnings limits 2020-03-21 23:41:06 +01:00
krcroft
694e6f6cb1 Update allowed warnings limits 2020-03-20 01:06:23 +01:00
Patryk Obara
08de77d475 Update allowed warnings limits 2020-03-19 01:01:23 +01:00
Patryk Obara
4e1dcfafb1 Disable unnecessary sanitizers
Clang memory sanitizer needs all linked libraries (including STL) to be
compiled with msan option, otherwise analysis results are practically
unusable.

GCC undefined behaviour sanitizer analysis is already covered by build
running UASAN (undefined behaviour and address sanitizers).
2020-03-11 10:38:10 +01:00
Patryk Obara
761f1d977a Move sanitizer selection to matrix 2020-03-11 10:38:10 +01:00
Patryk Obara
3741e7838c Set sanitizer issue limits 2020-03-11 10:38:10 +01:00
Patryk Obara
5d9ad55d8c Run sanitizer counter on available logs 2020-03-11 10:38:10 +01:00
Patryk Obara
60198816f1 Rename count-bugs to count-clang-bugs 2020-03-11 10:38:10 +01:00
Patryk Obara
a67a52164e Temporarily disable stripping for CI MSYS2 cache 2020-03-09 21:28:44 +01:00
Patryk Obara
6e2b794bd0 Specify -march=nehalem for macOS snapshot builds
Our macOS release builds are limited to Catalina only, and this OS
officially works only on Ivy Bridge (2012) or newer microarchitecture.
Point GCC to target Nehalen (2008) instead - this should cover also all
possible Hackintoshes or virtual machines.
2020-03-08 03:28:37 +01:00
Patryk Obara
b98cd0f612 Build opusfile libs for macOS snapshots
This is a temporary measure until our buildsystem will be capable of
correctly picking static libraries directly from the OS.
2020-03-08 03:28:37 +01:00
Patryk Obara
69fea29f1e Add macOS release CI job
The builds have all optional features turned off to avoid dealing with
static linking of additional libraries.
2020-03-08 03:28:37 +01:00
Joshua Fern
f2029d71d8 Update copyright dates to 2020 2020-03-07 00:18:01 +01:00
Patryk Obara
f7745adf92 Update allowed warnings limits 2020-03-01 21:23:04 +01:00
Patryk Obara
b639bd7fca Update allowed PVS issues limit 2020-02-25 11:16:13 +01:00
Patryk Obara
73076c341d Update allowed PVS issues limit 2020-02-23 01:40:58 +01:00
Patryk Obara
70680279d1 Update allowed warnings limits 2020-02-19 19:39:46 +01:00
Patryk Obara
6e69228cfb Update allowed PVS issues limit 2020-02-15 21:37:03 +01:00
Patryk Obara
1d5e01f73c Update allowed issues limit 2020-02-15 17:54:46 +01:00
Patryk Obara
89e9e7336f Update issues limit for new clang static analyser
Updated Clang 9.0 just landed in Ubuntu repositories and is now
available via GitHub CI. Static analyser detects many more issues now.
2020-02-14 09:08:11 +01:00