Skip to content

Commit

Permalink
refactor: use CMakeLists (#17)
Browse files Browse the repository at this point in the history
upgrade thirdparty list:
- libunwind 1.1.0 -> 1.5.0
- llvm: 9.0.0 -> 9.0.1
- rm bison
  • Loading branch information
aceforeverd authored Dec 8, 2021
1 parent 9cf9d29 commit aa007cf
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 773 deletions.
270 changes: 67 additions & 203 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,270 +9,134 @@ on:

pull_request:

env:
OPENMLDB_REPO: 4paradigm/OpenMLDB
OPENMLDB_REF: 374fff1951bad85ef6e3f135ef1a8e9ecd15d221

jobs:
build-other:
thirdparty-linux:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
include:
- container: ghcr.io/aceforeverd/hybridsql-base:0.4.0
flags: ""
distro: centos
- container: ubuntu:20.04
flags: -DBUILD_ZOOKEEPER_PATCH=ON
distro: ubuntu

container:
image: ghcr.io/aceforeverd/hybridsql-base:0.4.0
image: ${{ matrix.container }}
env:
MAKEOPTS: -j2
DISTRO: ${{ matrix.distro }}

steps:
- uses: actions/checkout@v2

- name: Cache Source
id: cache-source
uses: actions/cache@v2
with:
path: |
src/*.tar.*
src/*.zip
key: ${{ hashFiles('**/CMakeLists.txt', 'fetch_resource.sh') }}

- name: download
if: steps.cache-source.outputs.cache-hit != 'true'
- name: setup deps
if: startsWith(matrix.container, 'ubuntu')
run: |
./fetch_resource.sh
- name: build
apt update
DEBIAN_FRONTEND=noninteractive apt-get install -y bison python3-dev libcppunit-dev build-essential cmake autoconf tcl pkg-config git curl patch libtool-bin
- name: setup deps(centos)
if: startsWith(matrix.container, 'ghcr')
run: |
./pack_other.sh
yum install -y patch
- name: Upload Artifact
if: ${{ github.event_name == 'push' }}
uses: actions/upload-artifact@v2
- name: download thirdparty source
uses: actions/checkout@v2
with:
path: |
libother-*.tar.gz
src/apache-zookeeper-*.tar.gz
build-other-mac:
runs-on: macos-latest
repository: ${{ env.OPENMLDB_REPO }}
ref: ${{ env.OPENMLDB_REF }}
path: openmldb

steps:
- uses: actions/checkout@v2

- name: Cache Source
id: cache-source
uses: actions/cache@v2
with:
path: |
src/*.tar.*
src/*.zip
key: ${{ hashFiles('**/CMakeLists.txt', 'fetch_resource.sh') }}

- name: Setup cmake
uses: jwlawson/[email protected]
with:
cmake-version: '3.20.x'

- name: Install System Dependencies
# coreutils for nproc
# gnu-getopt for brpc
- name: configure
run: |
brew install automake
brew install coreutils
brew install gnu-getopt
- name: download
if: steps.cache-source.outputs.cache-hit != 'true'
run: |
./fetch_resource.sh
cmake -S openmldb/third-party -B deps -DBUILD_BUNDLED=ON -DWITH_ZETASQL=OFF ${{ env.flags }}
- name: build
run: |
getopt -V
echo 'export PATH="/usr/local/opt/gnu-getopt/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
getopt -V
./pack_other.sh
- name: Upload Artifact
if: ${{ github.event_name == 'push' }}
uses: actions/upload-artifact@v2
with:
name: artifact-mac
path: |
libother-*.tar.gz
src/apache-zookeeper-*.tar.gz
build-llvm:
runs-on: ubuntu-latest
container:
image: ghcr.io/aceforeverd/hybridsql-base:0.4.0
steps:
- uses: actions/checkout@v2

- name: Cache Source
id: cache-source
uses: actions/cache@v2
with:
path: |
src/*.tar.*
src/*.zip
key: ${{ hashFiles('**/CMakeLists.txt', 'fetch_resource.sh') }}

- name: download
if: steps.cache-source.outputs.cache-hit != 'true'
run: |
./fetch_resource.sh
cmake --build deps
- name: build llvm
- name: create archive
if: startsWith(github.ref, 'refs/tags/v')
run: |
./pack_llvm.sh
./pack_all.sh deps
- name: Upload Artifact
if: ${{ github.event_name == 'push' }}
uses: actions/upload-artifact@v2
with:
path: llvm-*.tar.gz
path: deps/thirdparty-*.tar.gz

build-llvm-mac:
thirdparty-darwin:
runs-on: macos-latest
env:
MAKEOPTS: -j3

steps:
- uses: actions/checkout@v2

- name: Cache Source
id: cache-source
uses: actions/cache@v2
with:
path: |
src/*.tar.*
src/*.zip
key: ${{ hashFiles('**/CMakeLists.txt', 'fetch_resource.sh') }}

- name: Setup cmake
uses: jwlawson/[email protected]
with:
cmake-version: '3.20.x'
cmake-version: "3.20.x"

- name: Install System Dependencies
# coreutils for nproc
run: |
brew install coreutils
- name: download
if: steps.cache-source.outputs.cache-hit != 'true'
run: |
./fetch_resource.sh
- name: build llvm
run: |
./pack_llvm.sh
- name: Upload Artifact
if: ${{ github.event_name == 'push' }}
uses: actions/upload-artifact@v2
with:
name: artifact-mac
path: llvm-*.tar.gz


build-boost:
runs-on: ubuntu-latest
container:
image: ghcr.io/aceforeverd/hybridsql-base:0.4.0
steps:
- uses: actions/checkout@v2

- name: Cache Source
id: cache-source
uses: actions/cache@v2
- name: download thirdparty source
uses: actions/checkout@v2
with:
path: |
src/*.tar.*
src/*.zip
key: ${{ hashFiles('**/CMakeLists.txt', 'fetch_resource.sh') }}
repository: ${{ env.OPENMLDB_REPO }}
ref: ${{ env.OPENMLDB_REF }}
path: openmldb

- name: download
if: steps.cache-source.outputs.cache-hit != 'true'
run: |
./fetch_resource.sh
- name: build boost
- name: Install System Dependencies
# coreutils for nproc
# gnu-getopt for brpc
run: |
./pack_boost.sh
brew install automake coreutils gnu-getopt
- name: Upload Artifact
if: ${{ github.event_name == 'push' }}
uses: actions/upload-artifact@v2
with:
path: boost-*.tar.gz

build-boost-mac:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2

- name: Cache Source
id: cache-source
uses: actions/cache@v2
with:
path: |
src/*.tar.*
src/*.zip
key: ${{ hashFiles('**/CMakeLists.txt', 'fetch_resource.sh') }}

- name: Install System Dependencies
# coreutils for nproc
- name: configure
run: |
brew install coreutils
cmake -S openmldb/third-party -B deps -DBUILD_BUNDLED=ON -DWITH_ZETASQL=OFF ${{ env.flags }}
- name: download
if: steps.cache-source.outputs.cache-hit != 'true'
- name: build
run: |
./fetch_resource.sh
cmake --build deps
- name: build boost
- name: create archive
if: startsWith(github.ref, 'refs/tags/v')
run: |
./pack_boost.sh
./pack_all.sh deps
- name: Upload Artifact
if: ${{ github.event_name == 'push' }}
uses: actions/upload-artifact@v2
with:
name: artifact-mac
path: boost-*.tar.gz
path: deps/thirdparty-*.tar.gz

release:
runs-on: ubuntu-latest
needs: ["thirdparty-linux", "thirdparty-darwin"]
if: startsWith(github.ref, 'refs/tags/v')
needs:
- build-other
- build-llvm
- build-boost
- build-other-mac
- build-llvm-mac
- build-boost-mac
steps:
- uses: actions/checkout@v2

- name: Download Artifacts
uses: actions/download-artifact@v2
with:
name: artifact
path: linux/

- name: Download Artifacts For Mac
uses: actions/download-artifact@v2
with:
name: artifact-mac
path: darwin/

- name: Pack All Linux
- name: generate signature
working-directory: artifact
run: |
./pack_all.sh linux
- name: Pack All For Mac
run: |
./pack_all.sh darwin
env:
OS: darwin
ARCH: x86_64
sha256sum third*.tar.gz > SHA256SUM
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
linux/third*.tar.gz
darwin/thirdparty-*.tar.gz
artifact/thirdparty*.tar.gz
artifact/SHA256SUM
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ARG TARGETARCH
RUN yum update -y && yum install -y centos-release-scl epel-release && yum clean all

RUN yum install -y devtoolset-8 rh-git227 flex autoconf automake unzip bc expect libtool \
rh-python38-python-devel gettext byacc xz tcl cppunit-devel rh-python38-python-wheel \
rh-python38-python-devel gettext byacc xz tcl cppunit-devel rh-python38-python-wheel patch \
&& yum clean all

COPY setup_cmake.sh /
Expand Down
Loading

0 comments on commit aa007cf

Please sign in to comment.