diff --git a/.github/workflows/ubuntu-2004.yml b/.github/workflows/ubuntu-2004.yml deleted file mode 100644 index 354fa2509..000000000 --- a/.github/workflows/ubuntu-2004.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: Ubuntu 20.04 -on: - workflow_dispatch: - push: - branches: - - main - - "release/*" - pull_request: - types: [assigned, opened, synchronize, reopened, labeled] - -env: - UBUNTU_2004_IMAGE: "ghcr.io/gofractally/psibase-builder-ubuntu-2004:b70111acc20bdc6990e756a855fdbf428112c059" - -jobs: - ubuntu-2004-build: - name: Ubuntu 20.04 | Build - runs-on: ubuntu-latest - steps: - - name: Timestamp - id: ccache_cache_timestamp - run: echo timestamp=`date -u +"%Y-%m-%d-%H-%M-%S"` >>$GITHUB_OUTPUT - - name: Checkout - uses: actions/checkout@v3 - with: - submodules: false - fetch-depth: 0 - - name: Preserve ccache - uses: actions/cache@v3 - with: - path: .caches - key: $ubuntu-20.04-caches-${{ steps.ccache_cache_timestamp.outputs.timestamp }} - restore-keys: | - $ubuntu-20.04-caches- - - name: Build - run: | - set -e - echo ===== - mkdir -p $HOME/.ssh - chmod 700 $HOME/.ssh - git submodule update --init --recursive - echo ===== - export CCACHE_DIR=${GITHUB_WORKSPACE}/.caches/ccache - export SCCACHE_DIR=${GITHUB_WORKSPACE}/.caches/sccache - export CCACHE_CONFIGPATH=${GITHUB_WORKSPACE}/ccache.conf - echo max_size = 600M >${GITHUB_WORKSPACE}/ccache.conf - echo log_file = ${GITHUB_WORKSPACE}/ccache.log >>${GITHUB_WORKSPACE}/ccache.conf - export SCCACHE_CACHE_SIZE=200M - export RUSTC_WRAPPER=sccache - export LLVM_CONFIG_PATH=/opt/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/llvm-config - export LD_LIBRARY_PATH=/opt/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04/lib/ - export DOCKER="docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} -w ${GITHUB_WORKSPACE} -e CCACHE_DIR -e CCACHE_CONFIGPATH -e SCCACHE_DIR -e SCCACHE_CACHE_SIZE -e RUSTC_WRAPPER -e LLVM_CONFIG_PATH -e LD_LIBRARY_PATH --user $(id -u):$(id -g) ${UBUNTU_2004_IMAGE}" - export DOCKER_ROOT="docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} -w ${GITHUB_WORKSPACE} -e CCACHE_DIR -e CCACHE_CONFIGPATH -e SCCACHE_DIR -e SCCACHE_CACHE_SIZE -e RUSTC_WRAPPER -e LLVM_CONFIG_PATH -e LD_LIBRARY_PATH ${UBUNTU_2004_IMAGE}" - docker pull ${UBUNTU_2004_IMAGE} - echo ===== - ${DOCKER} ccache -s - echo ===== - ${DOCKER} sccache -s - echo ===== - mkdir build - ${DOCKER} bash -c "cd build && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_RELEASE_WASM=yes -DBUILD_DEBUG_WASM=yes -DBUILD_DOC=yes -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache .." - echo ===== - ${DOCKER} bash -c "cd build && make -j $(nproc)" - echo ===== - ${DOCKER} bash -c "cd build && ctest --output-on-failure -j $(nproc)" - echo ===== - ls -la ${GITHUB_WORKSPACE} - echo ===== - ${DOCKER} ccache -s - echo ===== - ${DOCKER} sccache -s - echo ===== - ${DOCKER} bash -c "cd build && cpack -G TGZ -D CPACK_PACKAGE_FILE_NAME=psidk-ubuntu-2004" - echo ===== - ${DOCKER} bash -c "cd build && mv book psidk-book && tar czf ../psidk-book.tar.gz psidk-book" - - name: Upload psidk-ubuntu-2004 - uses: actions/upload-artifact@v1 - with: - name: psidk-ubuntu-2004 - path: build/psidk-ubuntu-2004.tar.gz - - name: Upload psidk-book - uses: actions/upload-artifact@v1 - with: - name: psidk-book - path: psidk-book.tar.gz diff --git a/.github/workflows/ubuntu-2204.yml b/.github/workflows/ubuntu-builder.yml similarity index 66% rename from .github/workflows/ubuntu-2204.yml rename to .github/workflows/ubuntu-builder.yml index 99e694ded..f683c3421 100644 --- a/.github/workflows/ubuntu-2204.yml +++ b/.github/workflows/ubuntu-builder.yml @@ -1,20 +1,20 @@ -name: Ubuntu 22.04 +name: Ubuntu builds + on: workflow_dispatch: - push: - branches: - - main - - "release/*" - pull_request: - types: [assigned, opened, synchronize, reopened, labeled] - -env: - UBUNTU_2204_IMAGE: "ghcr.io/gofractally/psibase-builder-ubuntu-2204:7e3c6e5739df95ba33943789d2cdf5472f91111a" + workflow_call: jobs: - ubuntu-2204-build: - name: Ubuntu 22.04 | Build + build: + name: Build runs-on: ubuntu-latest + strategy: + matrix: + include: + - builder-image: "ghcr.io/${{ github.repository_owner }}/psibase-builder-ubuntu-2004:b70111acc20bdc6990e756a855fdbf428112c059" + ubuntu-version: "2004" + - builder-image: "ghcr.io/${{ github.repository_owner }}/psibase-builder-ubuntu-2204:7e3c6e5739df95ba33943789d2cdf5472f91111a" + ubuntu-version: "2204" steps: - name: Timestamp id: ccache_cache_timestamp @@ -28,9 +28,9 @@ jobs: uses: actions/cache@v3 with: path: .caches - key: $ubuntu-22.04-caches-${{ steps.ccache_cache_timestamp.outputs.timestamp }} + key: $ubuntu-${{ matrix.ubuntu-version }}-caches-${{ steps.ccache_cache_timestamp.outputs.timestamp }} restore-keys: | - $ubuntu-22.04-caches- + $ubuntu-${{ matrix.ubuntu-version }}-caches- - name: Build run: | set -e @@ -46,9 +46,9 @@ jobs: echo log_file = ${GITHUB_WORKSPACE}/ccache.log >>${GITHUB_WORKSPACE}/ccache.conf export SCCACHE_CACHE_SIZE=200M export RUSTC_WRAPPER=sccache - export DOCKER="docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} -w ${GITHUB_WORKSPACE} -e CCACHE_DIR -e CCACHE_CONFIGPATH -e SCCACHE_DIR -e SCCACHE_CACHE_SIZE -e RUSTC_WRAPPER --user $(id -u):$(id -g) ${UBUNTU_2204_IMAGE}" - export DOCKER_ROOT="docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} -w ${GITHUB_WORKSPACE} -e CCACHE_DIR -e CCACHE_CONFIGPATH -e SCCACHE_DIR -e SCCACHE_CACHE_SIZE -e RUSTC_WRAPPER ${UBUNTU_2204_IMAGE}" - docker pull ${UBUNTU_2204_IMAGE} + export DOCKER="docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} -w ${GITHUB_WORKSPACE} -e CCACHE_DIR -e CCACHE_CONFIGPATH -e SCCACHE_DIR -e SCCACHE_CACHE_SIZE -e RUSTC_WRAPPER --user $(id -u):$(id -g) ${{ matrix.builder-image }}" + export DOCKER_ROOT="docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} -w ${GITHUB_WORKSPACE} -e CCACHE_DIR -e CCACHE_CONFIGPATH -e SCCACHE_DIR -e SCCACHE_CACHE_SIZE -e RUSTC_WRAPPER ${{ matrix.builder-image }}" + docker pull ${{ matrix.builder-image }} echo ===== ${DOCKER} ccache -s echo ===== @@ -68,16 +68,16 @@ jobs: echo ===== ${DOCKER} sccache -s echo ===== - ${DOCKER} bash -c "cd build && cpack -G TGZ -D CPACK_PACKAGE_FILE_NAME=psidk-ubuntu-2204" + ${DOCKER} bash -c "cd build && cpack -G TGZ -D CPACK_PACKAGE_FILE_NAME=psidk-ubuntu-${{ matrix.ubuntu-version }}" echo ===== - ${DOCKER} bash -c "cd build && mv book psidk-book && tar czf ../psidk-book.tar.gz psidk-book" - - name: Upload psidk-ubuntu-2204 + ${DOCKER} bash -c "cd build && mv book psidk-book && tar czf ../psidk-book-${{ matrix.ubuntu-version }}.tar.gz psidk-book" + - name: Upload psidk-ubuntu-${{ matrix.ubuntu-version }} uses: actions/upload-artifact@v1 with: - name: psidk-ubuntu-2204 - path: build/psidk-ubuntu-2204.tar.gz - - name: Upload psidk-book + name: psidk-ubuntu-${{ matrix.ubuntu-version }} + path: build/psidk-ubuntu-${{ matrix.ubuntu-version }}.tar.gz + - name: Upload psidk-book-${{ matrix.ubuntu-version }} uses: actions/upload-artifact@v1 with: - name: psidk-book - path: psidk-book.tar.gz + name: psidk-book-${{ matrix.ubuntu-version }} + path: psidk-book-${{ matrix.ubuntu-version }}.tar.gz