Update circleci config.yml #664
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: [push] | |
jobs: | |
Mingw: | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update OS and Compilers | |
run: | | |
sudo apt install -y cmake ninja-build | |
sudo apt install -y mingw-w64 | |
- name: Build proxy | |
run: | | |
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=./cmake/mingw.cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -DBOOST_EXCLUDE_LIBRARIES="stacktrace;redis;mysql;multiprecision;log;iostreams;charconv;locale" -G Ninja | |
cmake --build build --config Release | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proxy_server-mingw_w64 | |
path: build/bin/release/proxy_server.exe | |
Docker: | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build proxy | |
run: | | |
docker build . -t proxy:v1 | |
docker create --name ps proxy:v1 | |
mkdir -p build/docker | |
docker cp ps:/usr/local/bin/proxy_server build/docker | |
docker cp ps:/usr/local/bin/proxy_server-wolfssl build/docker | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proxy_server-linux_musl_x64 | |
path: build/docker/ | |
Linux: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update OS and Compilers | |
run: | | |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test | |
sudo apt install -y cmake gcc-12 g++-12 ninja-build | |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 10 | |
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 10 | |
- name: Build proxy | |
run: | | |
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_WERROR=OFF -G Ninja | |
cmake --build build --config Release | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proxy_server-linux_glibc_x64 | |
path: build/bin/proxy_server | |
Alpine: | |
runs-on: ubuntu-latest | |
container: | |
image: alpine:3.20.1 | |
steps: | |
- name: Install packages | |
run: apk add bash git nasm yasm pkgconfig build-base clang cmake ninja linux-headers | |
- uses: actions/checkout@v4 | |
- name: Build proxy | |
run: | | |
CC=clang CXX=clang++ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" -G Ninja | |
cmake --build build --config Release | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proxy_server-alpine_musl_x64 | |
path: build/bin/proxy_server | |
MiMalloc: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update OS and Compilers | |
run: | | |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test | |
sudo apt install -y cmake gcc-12 g++-12 ninja-build | |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 10 | |
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 10 | |
- name: Build mimalloc | |
run: | | |
git clone https://github.com/microsoft/mimalloc.git | |
cd mimalloc && mkdir build && cd build && git checkout tags/v2.1.2 | |
echo "Building mimalloc..." | |
cmake -DCMAKE_BUILD_TYPE=Release -DMI_BUILD_STATIC=ON -DMI_BUILD_SHARED=OFF -DMI_BUILD_TESTS=OFF -DMI_BUILD_OBJECT=ON .. | |
make -j4 | |
echo "Installing mimalloc..." | |
sudo make install | |
- name: Build proxy | |
run: | | |
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_WERROR=OFF -DENABLE_MIMALLOC_STATIC=ON -G Ninja | |
cmake --build build --config Release | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proxy_server-linux_mimalloc | |
path: build/bin/proxy_server | |
SnMalloc: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update OS and Compilers | |
run: | | |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test | |
sudo apt install -y cmake gcc-12 g++-12 ninja-build | |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 10 | |
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 10 | |
- name: Build proxy | |
run: | | |
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_WERROR=OFF -DENABLE_SNMALLOC_STATIC=ON -G Ninja | |
cmake --build build --config Release | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proxy_server-linux_snmalloc | |
path: build/bin/proxy_server | |
Windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build proxy | |
run: | | |
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_WERROR=OFF | |
cmake --build build --config Release | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proxy_server-msvc_x64 | |
path: build/bin/release/proxy_server.exe |