1
2# (C) 2020 Jack Lloyd
3# Botan is released under the Simplified BSD License (see license.txt)
4
5name: ci
6
7on:
8  push:
9    branches: [ release-2 ]
10  pull_request:
11    branches: [ release-2 ]
12
13jobs:
14  ci:
15    runs-on: ${{ matrix.host_os }}
16
17    env:
18      ANDROID_NDK: android-ndk-r21d
19
20    strategy:
21      fail-fast: false
22
23      matrix:
24        include:
25          - target: coverage
26            compiler: gcc
27            host_os: ubuntu-20.04
28          - target: shared
29            compiler: gcc
30            host_os: ubuntu-20.04
31          - target: shared
32            compiler: clang
33            host_os: ubuntu-20.04
34          - target: valgrind
35            compiler: gcc
36            host_os: ubuntu-20.04
37          - target: fuzzers
38            compiler: gcc
39            host_os: ubuntu-20.04
40          - target: cross-i386
41            compiler: gcc
42            host_os: ubuntu-20.04
43          - target: cross-arm64
44            compiler: gcc
45            host_os: ubuntu-20.04
46          - target: cross-ppc64
47            compiler: gcc
48            host_os: ubuntu-20.04
49          - target: cross-android-arm32
50            compiler: clang
51            host_os: ubuntu-20.04
52          - target: cross-android-arm64
53            compiler: clang
54            host_os: ubuntu-20.04
55          - target: cross-win64
56            compiler: gcc
57            host_os: ubuntu-20.04
58          - target: baremetal
59            compiler: gcc
60            host_os: ubuntu-20.04
61          - target: minimized
62            compiler: gcc
63            host_os: ubuntu-20.04
64          - target: bsi
65            compiler: gcc
66            host_os: ubuntu-20.04
67          - target: lint
68            compiler: gcc
69            host_os: ubuntu-20.04
70          - target: shared
71            compiler: clang
72            host_os: macos-latest
73          - target: cross-ios-arm64
74            compiler: clang
75            host_os: macos-latest
76
77    steps:
78      - uses: actions/checkout@v2
79      - uses: actions/cache@v2
80        with:
81            path: |
82              ~/.ccache
83              /Users/runner/Library/Caches/ccache
84            key: release-2-${{ runner.os }}-${{ matrix.compiler }}-${{ matrix.target }}-${{ github.run_id }}
85            restore-keys: |
86               release-2-${{ runner.os }}-${{ matrix.compiler }}-${{ matrix.target }}-
87      - run: ./src/scripts/ci/setup_gh_actions.sh ${{ matrix.target }}
88      - run: ./src/scripts/ci_build.py --cc '${{ matrix.compiler }}' ${{ matrix.target }}
89