Skip to content

Commit 02533f2

Browse files
committed
ow setup
1 parent f2c5b4e commit 02533f2

File tree

3 files changed

+140
-6
lines changed

3 files changed

+140
-6
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
2+
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
3+
name: Open Watcom (CMake on multiple platforms)
4+
5+
on:
6+
workflow_dispatch:
7+
8+
jobs:
9+
build:
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
common:
14+
#- cmake: '--debug-output --trace -Wdev -B build -G "Watcom WMake" -DCMAKE_VERBOSE_MAKEFILE=TRUE'
15+
- cmake: '-B build -G "Watcom WMake" -DCMAKE_VERBOSE_MAKEFILE=TRUE'
16+
config:
17+
- name: 'Release'
18+
id: 'Release'
19+
cmake: '-DCMAKE_BUILD_TYPE=Release'
20+
owimage:
21+
- name: '1.9'
22+
ver: '1.9'
23+
id: '19'
24+
- name: '2.0'
25+
ver: '2.0'
26+
id: '20'
27+
os:
28+
- name: 'Windows on Windows'
29+
host: 'Windows'
30+
id: 'windows'
31+
image: 'windows-latest'
32+
cmake: '-DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86 -DWOLFSSL_ASM=no'
33+
- name: 'Linux on Linux'
34+
host: 'Linux'
35+
id: 'linux'
36+
image: 'ubuntu-latest'
37+
cmake: '-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=x86 -DWOLFSSL_ASM=no'
38+
- name: 'Linux on Windows'
39+
host: 'Windows'
40+
id: 'linux'
41+
image: 'windows-latest'
42+
cmake: '-DCMAKE_SYSTEM_NAME=Linux -DWOLFSSL_ASM=no'
43+
- name: 'OS/2 on Windows'
44+
host: 'Windows'
45+
id: 'os2'
46+
image: 'windows-latest'
47+
cmake: '-DCMAKE_SYSTEM_NAME=OS2 -DWOLFSSL_ASM=no'
48+
#cmake: '-DCMAKE_SYSTEM_NAME=OS2 -DWOLFSSL_ASM=no -DWOLFSSL_EXAMPLES=no -DWOLFSSL_CRYPT_TESTS=no'
49+
thread:
50+
- name: 'mt'
51+
id: 'mt'
52+
cmake: ''
53+
owcmake: '-DCMAKE_POLICY_DEFAULT_CMP0136=NEW -DCMAKE_WATCOM_RUNTIME_LIBRARY=MultiThreaded'
54+
- name: 'st'
55+
id: 'st'
56+
cmake: '-DWOLFSSL_SINGLE_THREADED=yes'
57+
owcmake: '-DCMAKE_POLICY_DEFAULT_CMP0136=NEW -DCMAKE_WATCOM_RUNTIME_LIBRARY=SingleThreaded'
58+
library:
59+
- name: 'DLL'
60+
id: 'dll'
61+
cmake: ''
62+
owcmake: 'DLL'
63+
- name: ''
64+
id: 'static'
65+
cmake: '-DBUILD_SHARED_LIBS=no'
66+
owcmake: ''
67+
openssl:
68+
- name: ''
69+
id: ''
70+
cmake: ''
71+
- name: 'OpenSSL'
72+
id: 'ossl'
73+
cmake: '-DWOLFSSL_OPENSSLALL=yes'
74+
exclude:
75+
- { os: { id: 'linux' }, library: { id: 'dll' } }
76+
- { os: { id: 'linux' }, owimage: { ver: '1.9' }, thread: { id: 'mt' } }
77+
runs-on: ${{matrix.os.image}}
78+
name: ${{matrix.os.name}} OW ${{matrix.owimage.name}} (${{matrix.thread.name}} ${{matrix.library.name}} ${{matrix.openssl.name}})
79+
steps:
80+
- uses: actions/checkout@v4
81+
82+
- name: Install Open Watcom
83+
uses: open-watcom/setup-watcom@v0
84+
with:
85+
version: ${{matrix.owimage.ver}}
86+
- name: Create build subdirectory
87+
run: mkdir build
88+
- name: Configure CMake
89+
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only
90+
# required if you are using a single-configuration generator such as make.
91+
run: cmake ${{matrix.common.cmake}} ${{matrix.config.cmake}} ${{matrix.os.cmake}} ${{matrix.thread.cmake}} ${{matrix.library.cmake}} ${{matrix.openssl.cmake}} ${{matrix.thread.owcmake}}${{matrix.library.owcmake}}
92+
- name: Build
93+
run: cmake --build build
94+
- name: Upload build errors
95+
#if: failure()
96+
if: always()
97+
uses: actions/upload-artifact@v4
98+
with:
99+
name: ${{matrix.os.id}}-${{matrix.os.host}}-${{matrix.owimage.ver}}-${{matrix.thread.id}}-${{matrix.library.id}}-${{matrix.openssl.id}}
100+
path: |
101+
build/**
102+
- name: Tests Windows
103+
if: matrix.os.host == 'Windows' && matrix.os.id == 'Windows'
104+
working-directory: build/wolfcrypt/test
105+
run: |
106+
copy ${{github.workspace}}\build\wolfssl.dll .
107+
mkdir certs
108+
copy ${{github.workspace}}\certs\*.der .\certs\
109+
testwolfcrypt
110+
shell: cmd
111+
- name: Tests Linux
112+
if: matrix.os.host == 'Linux' && matrix.os.id == 'Linux'
113+
working-directory: build/wolfcrypt/test
114+
run: |
115+
mkdir certs
116+
cp ${{github.workspace}}/certs/*.der ./certs/
117+
./testwolfcrypt
118+
shell: bash
119+
- name: Benchmark Windows
120+
if: matrix.os.host == 'Windows' && matrix.os.id == 'Windows'
121+
working-directory: build/wolfcrypt/benchmark
122+
run: |
123+
copy ${{github.workspace}}\build\wolfssl.dll .
124+
benchmark
125+
shell: cmd
126+
- name: Benchmark Linux
127+
if: matrix.os.host == 'Linux' && matrix.os.id == 'Linux'
128+
working-directory: build/wolfcrypt/benchmark
129+
run: |
130+
./benchmark
131+
shell: bash

.github/workflows/os-check.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
branches: [ 'master', 'main', 'release/**' ]
77
pull_request:
88
branches: [ '*' ]
9+
workflow_dispatch:
910

1011
concurrency:
1112
group: ${{ github.workflow }}-${{ github.ref }}
@@ -44,7 +45,7 @@ jobs:
4445
'--enable-ascon CPPFLAGS=-DWOLFSSL_ASCON_UNROLL --enable-experimental',
4546
]
4647
name: make check
47-
if: github.repository_owner == 'wolfssl'
48+
#if: github.repository_owner == 'wolfssl'
4849
runs-on: ${{ matrix.os }}
4950
# This should be a safe limit for the tests to run.
5051
timeout-minutes: 14
@@ -65,7 +66,7 @@ jobs:
6566
'examples/configs/user_settings_all.h',
6667
]
6768
name: make user_setting.h
68-
if: github.repository_owner == 'wolfssl'
69+
#if: github.repository_owner == 'wolfssl'
6970
runs-on: ${{ matrix.os }}
7071
# This should be a safe limit for the tests to run.
7172
timeout-minutes: 14
@@ -91,7 +92,7 @@ jobs:
9192
'examples/configs/user_settings_tls12.h',
9293
]
9394
name: make user_setting.h (testwolfcrypt only)
94-
if: github.repository_owner == 'wolfssl'
95+
#if: github.repository_owner == 'wolfssl'
9596
runs-on: ${{ matrix.os }}
9697
# This should be a safe limit for the tests to run.
9798
timeout-minutes: 14
@@ -113,7 +114,7 @@ jobs:
113114
matrix:
114115
os: [ ubuntu-22.04, macos-latest ]
115116
name: make user_setting.h (with sed)
116-
if: github.repository_owner == 'wolfssl'
117+
#if: github.repository_owner == 'wolfssl'
117118
runs-on: ${{ matrix.os }}
118119
# This should be a safe limit for the tests to run.
119120
timeout-minutes: 14
@@ -132,7 +133,7 @@ jobs:
132133
133134
windows_build:
134135
name: Windows Build Test
135-
if: github.repository_owner == 'wolfssl'
136+
#if: github.repository_owner == 'wolfssl'
136137
runs-on: windows-latest
137138
strategy:
138139
fail-fast: false

.github/workflows/watcomc.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
branches: [ 'master', 'main', 'release/**' ]
77
pull_request:
88
branches: [ '*' ]
9+
workflow_dispatch:
910

1011
concurrency:
1112
group: ${{ github.workflow }}-${{ github.ref }}
@@ -14,7 +15,7 @@ concurrency:
1415

1516
jobs:
1617
wolfssl_watcomc_windows:
17-
if: github.repository_owner == 'wolfssl'
18+
#if: github.repository_owner == 'wolfssl'
1819
strategy:
1920
fail-fast: false
2021
matrix:
@@ -55,6 +56,7 @@ jobs:
5556
owcmake: ''
5657
exclude:
5758
- { platform: { system: 'Linux' }, library: { id: 'dll' } }
59+
- { os: { id: 'linux' }, owimage: { ver: '1.9' }, thread: { id: 'mt' } }
5860
runs-on: ${{ matrix.platform.image }}
5961
name: ${{ matrix.platform.title }} (${{ matrix.thread.id }} ${{ matrix.library.id }})
6062
steps:

0 commit comments

Comments
 (0)