-
Notifications
You must be signed in to change notification settings - Fork 54
/
.cirrus.yml
132 lines (127 loc) · 5.35 KB
/
.cirrus.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
task:
name: Linux gcc 9/11/latest builds
skip: "changesIncludeOnly('docs/*')"
env:
CIRRUS_CLONE_DEPTH: 1
CIRRUS_CLONE_SUBMODULES: true
container:
matrix:
image: gcc:9
image: gcc:11
image: gcc:latest
cpu: 2
memory: 1G
gcc_version_script: gcc --version
build_script: make clean && make -j3
install_script: make install && make clean
## now try the built+installed sjasmplus with some tests and examples
# this is not separate task, because that would need again build
# of sjasmplus in new container instance, so just do everything in one task
assemble_tests_script: ContinuousIntegration/test_folder_tests.sh
assemble_examples_script: ContinuousIntegration/test_folder_examples.sh
pipe:
name: coveralls.io coverage report (linux gcc14)
# check if this is z00m's repository (the encrypted token belongs to original repo)
only_if: $CIRRUS_REPO_OWNER == 'z00m128'
skip: $CIRRUS_PR
skip: "changesIncludeOnly('docs/*')"
depends_on: macos ## saves some resources in case macos build fails (usually first to pass)
env:
# needs full clone to calculate revision number from git
CIRRUS_CLONE_DEPTH: 0
CIRRUS_CLONE_SUBMODULES: true
# coveralls plugin variables (access token + job ID)
COVERALLS_REPO_TOKEN: ENCRYPTED[8b09887e95ef3aec93b9e31cbbca1f9090704ec9af432869c94d8d79dabdc95640bc061bbaaaf063e31dde112aa93729]
CI_SERVICE_NAME: 'cirrus-ci'
# makefile variables affecting build options, LUA_COVERAGE *and* removing -e options to see all of that
#LUA_COVERAGE: 1
DEBUG: 1
COVERALLS_SERVICE: 1
resources:
cpu: 2
memory: 1G
steps:
- image: gcc:14
generate_gcov_script: make clean && make -j3 coverage
- image: python:3.7
# installing my patched version of "cpp-coveralls" to get support for CI_SERVICE_NAME and git-revision number
install_coveralls_plugin_script: pip install git+https://github.com/ped7g/cpp-coveralls.git@master
# "-n" as the *.gcov files are already generated in the project root from previous step
upload_gcov_data_script: cpp-coveralls -n -e lua5.4/ -e LuaBridge/ -e unittest-cpp/ -e cpp-src-tests/
# image cirrusci/windowsservercore:cmake located at (Jul 2022):
# https://hub.docker.com/layers/windowsservercore/cirrusci/windowsservercore/cmake/images/sha256-25bc1126d3d4b8e4e5c07bc7105612c5c4877816dfdad94bf4fded5f999d1cf3
# File locations in cirrusci/windowsservercore:cmake
# - mingw32-make.exe - C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin (and C:\ProgramData\chocolatey\bin)
# - cmake.exe - C:\Program Files\CMake\bin
# - vcvar64.bat -C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
# other windows images by Cirrus CI: https://hub.docker.com/r/cirrusci/windowsservercore/tags
task:
name: windows mingw build
skip: "changesIncludeOnly('docs/*')"
env:
CIRRUS_CLONE_DEPTH: 1
CIRRUS_CLONE_SUBMODULES: true
windows_container:
image: cirrusci/windowsservercore:cmake
os_version: 2019
cpu: 2
build_script: ContinuousIntegration\winbuild_mingw.bat
assemble_examples_script: ContinuousIntegration\winbuild_mingw_examples.bat
assemble_tests_script: ContinuousIntegration\winbuild_mingw_tests.bat
# VS builds are temporarily disabled, see: https://github.com/cirruslabs/docker-images-windows/issues/14
# task:
# name: windows Visual Studio 2019 build
# env:
# CIRRUS_CLONE_DEPTH: 1
# CIRRUS_CLONE_SUBMODULES: true
# windows_container:
# image: cirrusci/windowsservercore:cmake
# os_version: 2019
# cpu: 2
# # FIXME: currently doesn't work, missing VSC compiler
# build_script: ContinuousIntegration\winbuild_vs2019.bat
# # exe is installed at the same location as the MinGW build does
# assemble_examples_script: ContinuousIntegration\winbuild_mingw_examples.bat
# assemble_tests_script: ContinuousIntegration\winbuild_mingw_tests.bat
task:
name: FreeBSD clang build (with unit tests)
skip: "changesIncludeOnly('docs/*')"
env:
CIRRUS_CLONE_DEPTH: 1
CIRRUS_CLONE_SUBMODULES: true
freebsd_instance:
image_family: freebsd-14-0-snap
cpu: 2
memory: 3G
## lock pkg on current version (sjasmplus does not care as long as it can install ...)
##pkg lock -y pkg &&
## - locking disabled after second incident recommending "Consider running 'pkg update -f'"
# install GNU make and bash
# (FreeBSD make can't handle current Makefile)
sw_install_script: IGNORE_OSVERSION=yes pkg update -f && pkg install -y gmake bash diffutils
sw_versions2_script:
- bash --version || echo "no bash"
- gmake --version || echo "no gmake"
- cc --version || echo "no cc"
- c++ --version || echo "no c++"
# regular binary build (will be not run, just testing the build process)
build_script: gmake clean && gmake -j4 CC=cc CXX=c++
# build+test the unit test binary
test_script: gmake clean && gmake -j4 CC=cc CXX=c++ tests
task:
name: MacOS default CC build (with unit tests)
alias: macos
env:
CIRRUS_CLONE_DEPTH: 1
CIRRUS_CLONE_SUBMODULES: true
macos_instance:
image: ghcr.io/cirruslabs/macos-sonoma-base:latest
sw_versions2_script:
- git --version || echo "no git"
- bash --version || echo "no bash"
- make --version || echo "no make"
- cc --version || echo "no cc"
- c++ --version || echo "no c++"
- date
build_script: make clean && make -j10 CC=cc CXX=c++
test_script: make clean && make -j10 CC=cc CXX=c++ tests