# Copyright (C) Daniel Stenberg, , 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.*' - 'packages/**' - 'plan9/**' - 'projects/**' - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' - '.azure-pipelines.yml' - '.circleci/**' - '.cirrus.yml' - 'appveyor.*' - '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 # renovate: datasource=github-tags depName=awslabs/aws-lc versioning=semver registryUrl=https://github.com awslc-version: 1.28.0 jobs: autoconf: name: awslc (autoconf) runs-on: 'ubuntu-latest' timeout-minutes: 30 steps: - run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list sudo apt-get update sudo apt-get install --yes libtool autoconf automake pkg-config stunnel4 libpsl-dev # 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' - name: cache awslc uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 id: cache-awslc env: cache-name: cache-awslc with: path: /home/runner/awslc key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.awslc-version }} - name: build awslc if: steps.cache-awslc.outputs.cache-hit != 'true' run: | curl -LOsSf --retry 6 --retry-connrefused --max-time 999 \ https://github.com/awslabs/aws-lc/archive/refs/tags/v${{ env.awslc-version }}.tar.gz tar xzf v${{ env.awslc-version }}.tar.gz mkdir aws-lc-${{ env.awslc-version }}-build cd aws-lc-${{ env.awslc-version }}-build cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-${{ env.awslc-version }} cmake --build . --parallel cmake --install . - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - run: autoreconf -fi name: 'autoreconf' - run: | mkdir build cd build ../configure --disable-dependency-tracking --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 rm -f /etc/apt/sources.list.d/microsoft-prod.list 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' - name: cache awslc uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 id: cache-awslc env: cache-name: cache-awslc with: path: /home/runner/awslc key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.awslc-version }} - name: build awslc if: steps.cache-awslc.outputs.cache-hit != 'true' run: | curl -LOsSf --retry 6 --retry-connrefused --max-time 999 \ https://github.com/awslabs/aws-lc/archive/refs/tags/v${{ env.awslc-version }}.tar.gz tar xzf v${{ env.awslc-version }}.tar.gz mkdir aws-lc-${{ env.awslc-version }}-build cd aws-lc-${{ env.awslc-version }}-build cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-${{ env.awslc-version }} cmake --build . --parallel cmake --install . - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - run: cmake -Bbuild -DCMAKE_UNITY_BUILD=ON -DCURL_WERROR=ON -DOPENSSL_ROOT_DIR=$HOME/awslc -DBUILD_SHARED_LIBS=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'