mirror of
https://github.com/curl/curl.git
synced 2024-12-27 06:59:43 +08:00
fb802b521a
Most CI services provide at least two cores, so enable parallel make jobs to take advantage of that for builds. Some dependencies aren't safe to build in parallel so leave those as-is. Also, rename a few workflows to eliminate duplicate names and provide a better idea what they're about.
130 lines
3.3 KiB
YAML
130 lines
3.3 KiB
YAML
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
#
|
|
# SPDX-License-Identifier: curl
|
|
|
|
name: Linux AWS-LC
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- '*/ci'
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
- '.azure-pipelines.yml'
|
|
- '.circleci/**'
|
|
- '.cirrus.yml'
|
|
- 'appveyor.yml'
|
|
- 'packages/**'
|
|
- 'plan9/**'
|
|
- 'projects/**'
|
|
- 'winbuild/**'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
- '.azure-pipelines.yml'
|
|
- '.circleci/**'
|
|
- '.cirrus.yml'
|
|
- 'appveyor.yml'
|
|
- 'packages/**'
|
|
- 'plan9/**'
|
|
- 'projects/**'
|
|
- 'winbuild/**'
|
|
|
|
concurrency:
|
|
# Hardcoded workflow filename as workflow name above is just Linux again
|
|
group: awslc-${{ github.event.pull_request.number || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
permissions: {}
|
|
|
|
env:
|
|
MAKEFLAGS: -j 3
|
|
|
|
jobs:
|
|
autoconf:
|
|
name: awslc (autoconf)
|
|
runs-on: 'ubuntu-latest'
|
|
timeout-minutes: 30
|
|
|
|
steps:
|
|
- run: |
|
|
sudo apt-get update --yes
|
|
sudo apt-get install --yes libtool autoconf automake pkg-config stunnel4
|
|
# ensure we don't pick up openssl in this build
|
|
sudo apt remove --yes libssl-dev
|
|
sudo python3 -m pip install impacket
|
|
name: 'install prereqs and impacket'
|
|
|
|
- run: |
|
|
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/awslabs/aws-lc/archive/refs/tags/v1.3.0.tar.gz
|
|
tar xzf v1.3.0.tar.gz
|
|
mkdir aws-lc-1.3.0-build
|
|
cd aws-lc-1.3.0-build
|
|
cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-1.3.0
|
|
cmake --build . --parallel
|
|
cmake --install .
|
|
name: 'install awslc'
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
- run: autoreconf -fi
|
|
name: 'autoreconf'
|
|
|
|
- run: |
|
|
mkdir build
|
|
cd build
|
|
../configure --enable-warnings --enable-werror --with-openssl=$HOME/awslc
|
|
cd ..
|
|
name: 'configure out-of-tree'
|
|
|
|
- run: make -C build V=1
|
|
name: 'make'
|
|
|
|
- run: make -C build V=1 examples
|
|
name: 'make examples'
|
|
|
|
- run: make -C build V=1 -C tests
|
|
name: 'make tests'
|
|
|
|
- run: make -C build V=1 test-ci
|
|
name: 'run tests'
|
|
|
|
cmake:
|
|
name: awslc (cmake)
|
|
runs-on: 'ubuntu-latest'
|
|
timeout-minutes: 15
|
|
|
|
steps:
|
|
- run: |
|
|
sudo apt-get update
|
|
sudo apt-get install cmake stunnel4
|
|
# ensure we don't pick up openssl in this build
|
|
sudo apt remove --yes libssl-dev
|
|
sudo python3 -m pip install impacket
|
|
name: 'install prereqs and impacket'
|
|
|
|
- run: |
|
|
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/awslabs/aws-lc/archive/refs/tags/v1.3.0.tar.gz
|
|
tar xzf v1.3.0.tar.gz
|
|
mkdir aws-lc-1.3.0-build
|
|
cd aws-lc-1.3.0-build
|
|
cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-1.3.0
|
|
cmake --build . --parallel
|
|
cmake --install .
|
|
name: 'install awslc'
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
# CMAKE_COMPILE_WARNING_AS_ERROR is available in cmake 3.24 or later
|
|
- run: cmake -Bbuild -DOPENSSL_ROOT_DIR=$HOME/awslc -DBUILD_SHARED_LIBS=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON .
|
|
name: 'cmake generate out-of-tree'
|
|
|
|
- run: cmake --build build --parallel
|
|
name: 'cmake build'
|
|
|
|
- run: cmake --install build --prefix $HOME/curl --strip
|
|
name: 'cmake install'
|