llcppgtest&ci: test demo with generated pkg #373
Workflow file for this run
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
# This workflow will build a golang project | |
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go | |
name: Go | |
on: | |
push: | |
branches: [ "**" ] | |
pull_request: | |
branches: [ "**" ] | |
jobs: | |
test: | |
strategy: | |
matrix: | |
os: | |
- macos-latest | |
- ubuntu-24.04 | |
llvm: [18] | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20' | |
- name: Install dependencies | |
if: startsWith(matrix.os, 'macos') | |
run: | | |
brew update | |
brew install llvm@${{matrix.llvm}} bdw-gc openssl libffi | |
brew link --force libffi | |
echo "$(brew --prefix llvm@${{matrix.llvm}})/bin" >> $GITHUB_PATH | |
# llcppg dependencies | |
brew install cjson | |
- name: Install dependencies | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${{matrix.llvm}} main" | sudo tee /etc/apt/sources.list.d/llvm.list | |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - | |
sudo apt-get update | |
sudo apt-get install -y llvm-${{matrix.llvm}}-dev clang-${{matrix.llvm}} libclang-${{matrix.llvm}}-dev lld-${{matrix.llvm}} pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev | |
echo "/usr/lib/llvm-${{matrix.llvm}}/bin" >> $GITHUB_PATH | |
- name: Install LLGO | |
run: | | |
go install github.com/goplus/llgo/cmd/llgo@main | |
- name: Build | |
run: go build -v ./... | |
- name: Install llcppg modules | |
run: bash .github/workflows/install_llcppg_modules.sh | |
- name: Test llcppsymg & llcppsigfetch | |
run: | | |
llgo cmptest ./_xtool/llcppsigfetch/parse/cvt_test/... | |
# llgo cmptest ./_xtool/llcppsymg/_cmptest/... causes | |
# panic: runtime error: index out of range [0] with length 0 | |
cd _xtool/llcppsymg/_cmptest | |
llgo cmptest ./... | |
cd ../../../ | |
- name: Test | |
if: ${{!startsWith(matrix.os, 'macos')}} | |
run: go test -v ./... | |
- name: Test with coverage | |
if: startsWith(matrix.os, 'macos') | |
run: go test -v -coverprofile="coverage.txt" -covermode=atomic ./... | |
- name: Test demos | |
run: | | |
# TODO(lijie): force python3-embed to be linked with python-3.12-embed | |
# Currently, python3-embed is python-3.13-embed, doesn't work with pytorch | |
# Will remove this after pytorch is fixed. | |
pcdir=$HOME/pc | |
mkdir -p $pcdir | |
libdir=$(pkg-config --variable=libdir python-3.12-embed) | |
echo "libdir: $libdir" | |
ln -s $libdir/pkgconfig/python-3.12-embed.pc $pcdir/python3-embed.pc | |
export PKG_CONFIG_PATH=$pcdir | |
bash .github/workflows/test_demo.sh | |
- name: Test demos with generated pkgs | |
run: | | |
llcppgtest -demos ./_llcppgtest | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{secrets.CODECOV_TOKEN}} | |
slug: goplus/llcppg | |