name: Compile on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: strategy: matrix: image: ['ubuntu:20.04', 'centos:7'] runs-on: ubuntu-20.04 container: ${{ matrix.image }} steps: - uses: actions/checkout@v3 - name: Install ubuntu environment shell: bash if: ${{ startsWith(matrix.image, 'ubuntu') }} run: | export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y git wget rpm rpm2cpio cpio make build-essential binutils m4 libtool-bin libncurses5 - name: Install centos environment shell: bash if: ${{ startsWith(matrix.image, 'centos') }} run: yum install -y git wget rpm* cpio make glibc-devel glibc-headers binutils m4 - name: Cache deps id: cache-deps uses: actions/cache@v3 env: cache-name: cache-deps with: key: ${{ runner.os }}-build-${{ env.cache-name }}-el7.x86_64-${{ hashFiles('deps/init/oceanbase.el7.x86_64.deps') }} path: deps/3rd enableCrossOsArchive: true - name: Cache build id: cache-build uses: actions/cache@v3 env: cache-name: cache-build with: key: ${{ runner.os }}-${{ env.cache-name }}-${{ matrix.image }}-el7.x86_64-${{ github.ref_name }} path: ~/.ccache enableCrossOsArchive: false restore-keys: | ${{ runner.os }}-${{ env.cache-name }}-${{ matrix.image }}-el7.x86_64 - name: Build init if: steps.cache-deps.outputs.cache-hit != 'true' run: bash build.sh init - name: Build project shell: bash run: | rm -rf build_debug export CCACHE_LOGFILE=$PWD/ccache.log deps/3rd/usr/local/oceanbase/devtools/bin/ccache -z bash build.sh debug -DOB_USE_CCACHE=ON cd build_debug && make -j4 && cd - deps/3rd/usr/local/oceanbase/devtools/bin/ccache -s - if: ${{ runner.debug }} run: cat $PWD/ccache.log