Skip to content

Merge pull request #186 from expressvpn/apply-wolfssl-poly1305-pr #994

Merge pull request #186 from expressvpn/apply-wolfssl-poly1305-pr

Merge pull request #186 from expressvpn/apply-wolfssl-poly1305-pr #994

Workflow file for this run

# .github/workflows/ci.yml
name: CI
on:
# Running CI on all commits on all branches (implicitly covers pull request too)
push:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref_name != 'main' }}
jobs:
earthly:
runs-on: ubuntu-22.04
strategy:
matrix:
distro: [bullseye, bookworm]
env:
FORCE_COLOR: 1
steps:
- uses: earthly/actions-setup@v1
with:
version: "0.8.15"
- uses: actions/checkout@v4
- name: Put back the git branch into git (Earthly uses it for tagging)
run: |
branch=""
if [ -n "$GITHUB_HEAD_REF" ]; then
branch="$GITHUB_HEAD_REF"
else
branch="${GITHUB_REF##*/}"
fi
git checkout -b "$branch" || true
- name: Run build
run: earthly --ci +all --distro=${{ matrix.distro }}
linux:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Build dependencies
run: ceedling project:linux verbosity[4] clobber dependencies:make
- name: Run wolfSSL Tests
run: |
cd third_party/wolfssl
./wolfcrypt/test/testwolfcrypt
- name: Run build and test
run: ceedling project:linux verbosity[4] test:all
linux-386:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Install gcc multi lib
run: |
sudo apt update
sudo apt install -y gcc-multilib
- name: Build dependencies
run: ceedling project:linux_386 verbosity[4] clobber dependencies:make
- name: Run wolfSSL Tests
run: |
cd third_party/wolfssl
./wolfcrypt/test/testwolfcrypt
- name: Run build and test
run: ceedling project:linux_386 verbosity[4] test:all
linux-arm64:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Install ARM Tools
run: |
sudo apt update
sudo apt install -y crossbuild-essential-arm64 qemu-user
- name: Build dependencies
run: CROSS_COMPILE="aarch64-linux-gnu" CC="aarch64-linux-gnu-gcc" ceedling project:linux_arm64 verbosity[4] clobber dependencies:make
- name: Run wolfSSL Tests
run: |
cd third_party/wolfssl
QEMU_LD_PREFIX=/usr/aarch64-linux-gnu ./wolfcrypt/test/testwolfcrypt
- name: Run build
run: CC="aarch64-linux-gnu-gcc" ceedling project:linux_arm64 verbosity[4] release
linux-arm:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Install ARM Tools
run: |
sudo apt update
sudo apt install -y crossbuild-essential-armhf qemu-user
- name: Build dependencies
run: CROSS_COMPILE="arm-linux-gnueabihf" CC="arm-linux-gnueabihf-gcc" ceedling project:linux_arm verbosity[4] clobber dependencies:make
- name: Run wolfSSL Tests
run: |
cd third_party/wolfssl
QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf ./wolfcrypt/test/testwolfcrypt
- name: Run build
run: CC="arm-linux-gnueabihf-gcc" ceedling project:linux_arm verbosity[4] release
linux-arm-no-pqc:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Install ARM Tools
run: |
sudo apt update
sudo apt install -y crossbuild-essential-armhf qemu-user
- name: Build dependencies
run: CROSS_COMPILE="arm-linux-gnueabihf" CC="arm-linux-gnueabihf-gcc" ceedling project:linux_arm_no_pqc verbosity[4] clobber dependencies:make
- name: Run wolfSSL Tests
run: |
cd third_party/wolfssl
QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf ./wolfcrypt/test/testwolfcrypt
- name: Run build
run: CC="arm-linux-gnueabihf-gcc" ceedling project:linux_arm_no_pqc verbosity[4] release
linux-riscv64:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Install RISC-V Toolchain
run: |
sudo apt update
sudo apt install -y crossbuild-essential-riscv64 qemu-user
- name: Build dependencies
run: CROSS_COMPILE="riscv64-linux-gnu" CC="riscv64-linux-gnu-gcc" ceedling project:linux_riscv64 verbosity[4] clobber dependencies:make
- name: Run wolfSSL Tests
run: |
cd third_party/wolfssl
QEMU_LD_PREFIX=/usr/riscv64-linux-gnu ./wolfcrypt/test/testwolfcrypt
- name: Run build
run: CC="riscv64-linux-gnu-gcc" ceedling project:linux_riscv64 verbosity[4] release
macos:
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Install automake
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install autoconf automake libtool
- name: Build dependencies
run: ceedling project:macos verbosity[4] clobber dependencies:make
- name: Run build and test
run: ceedling project:macos verbosity[4] test:all
macos_arm64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Install automake
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install autoconf automake libtool
- name: Build dependencies
run: ceedling project:macos_arm64 verbosity[4] clobber dependencies:make
- name: Run build and test
run: ceedling project:macos_arm64 verbosity[4] test:all
windows:
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
config:
[
{ project: windows_64, arch: x64 },
{ project: windows_32, arch: x86 },
{ project: windows_arm64, arch: amd64_arm64 },
]
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: gem install ceedling --no-user-install
- name: Check Ceedling version
run: ceedling version
- name: Set up Visual Studio shell
uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: ${{ matrix.config.arch }}
- if: ${{ matrix.config.project != 'windows_arm64' }}
# Skip making dependencies for ARM64 as we can only apply git patch once for WolfSSL
name: Build dependencies
run: ceedling project:${{ matrix.config.project }} verbosity[4] clobber dependencies:make
- if: ${{ matrix.config.project != 'windows_arm64' }}
name: Run build and test
run: ceedling project:${{ matrix.config.project }} verbosity[4] test:all
- if: ${{ matrix.config.project == 'windows_arm64' }}
name: Run build
run: ceedling project:${{ matrix.config.project }} verbosity[4] release
ios:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Install automake
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install autoconf automake libtool
- name: Run build
run: ceedling project:ios verbosity[4] release
- name: Copy all public headers into the umbrella framework
run: cp public/*.h ios/Lightway/Lightway
- name: Build xcframework
run: |
cd ios/Lightway
./build-xcframework.sh
tvos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Install automake
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install autoconf automake libtool
- name: Run build
run: ceedling project:tvos verbosity[4] release
android:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
arch: [armeabi-v7a, arm64-v8a, x86, x86_64]
steps:
- uses: actions/checkout@v4
- name: Install Ceedling
run: sudo gem install ceedling --no-user-install
- name: Run build
run: |
source android/android_env.sh ${{ matrix.arch }}
ceedling project:android verbosity[4] release