Skip to content

feat: hashing sources for caching #31

feat: hashing sources for caching

feat: hashing sources for caching #31

Workflow file for this run

name: main
on:
pull_request:
push:
branches: [main]
env:
# libcxx version to match whats already installed
# https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md
LLVM_VERSION: '18.1.3'
CPP2B_LIBCXX_BUILD_ROOT: '/tmp/llvm-project/build'
jobs:
typos-check:
name: Typos Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crate-ci/typos@cfe759ac8dd421e203cc293a373396fbc6fe0d4b # v1.22.7
build-script-windows:
name: 'build.cmd'
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- run: .\build.cmd
- uses: actions/upload-artifact@v4
with:
name: cpp2b-windows-latest
path: dist/debug/cpp2b.exe
if-no-files-found: error
retention-days: 0
build-self-windows:
name: 'build self (windows)'
needs: build-script-windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: cpp2b-windows-latest
- run: .\cpp2b.exe build
- run: Copy-Item .\.cache\cpp2\bin\cpp2b.exe -Destination .\cpp2b-self.exe
- run: .\cpp2b-self.exe build
build-script-linux:
name: 'build.sh'
runs-on: ubuntu-24.04
steps:
- run: sudo apt-get install libclang-dev ninja-build -y
- uses: actions/cache@v4
id: libcxx_with_modules
with:
path: /tmp/llvm-project/build
key: 'libcxx-${{ env.LLVM_VERSION }}'
- name: compiling libcxx ${{ env.LLVM_VERSION }} with modules
if: steps.libcxx_with_modules.outputs.cache-hit != 'true'
run: |
git clone --depth 1 --branch llvmorg-${{ env.LLVM_VERSION }} https://github.com/llvm/llvm-project.git /tmp/llvm-project
cd /tmp/llvm-project
mkdir build
CC=clang-18 CXX=clang++-18 cmake -G Ninja -S runtimes -B build -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind"
ninja -C build
- uses: actions/checkout@v4
- run: CC=clang-18 ./build.sh
- uses: actions/upload-artifact@v4
with:
name: cpp2b-ubuntu-24.04
path: dist/debug/cpp2b
if-no-files-found: error
retention-days: 0
build-self-linux:
name: 'build self (linux)'
needs: build-script-linux
runs-on: ubuntu-24.04
steps:
- uses: actions/cache/restore@v4
with:
path: /tmp/llvm-project/build
key: 'libcxx-${{ env.LLVM_VERSION }}'
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: cpp2b-ubuntu-24.04
- run: chmod +x cpp2b
- run: ./cpp2b build
- run: ./.cache/cpp2/bin/cpp2b build