93 lines
2.7 KiB
YAML
93 lines
2.7 KiB
YAML
# 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: Install dependencies
|
|
if: startsWith(matrix.os, 'macos')
|
|
run: |
|
|
brew update
|
|
brew install llvm@${{ matrix.llvm }} pkg-config bdw-gc openssl cjson sqlite python@3.12
|
|
echo "$(brew --prefix llvm@${{ matrix.llvm }})/bin" >> $GITHUB_PATH
|
|
|
|
- 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 }} lld-${{ matrix.llvm }} pkg-config libgc-dev libssl-dev libcjson-dev libsqlite3-dev python3.12-dev
|
|
echo "/usr/lib/llvm-${{ matrix.llvm }}/bin" >> $GITHUB_PATH
|
|
|
|
- name: Clang information
|
|
run: |
|
|
echo $PATH
|
|
which clang
|
|
clang --version
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.20'
|
|
|
|
- name: Build
|
|
run: go build -v ./...
|
|
|
|
- name: Test
|
|
if: matrix.os != 'macos-latest'
|
|
run: go test -v ./...
|
|
|
|
- name: Test with coverage
|
|
if: matrix.os == 'macos-latest'
|
|
run: go test -v -coverprofile="coverage.txt" -covermode=atomic ./...
|
|
|
|
- name: Install
|
|
run: go install ./...
|
|
|
|
- name: LLGO tests
|
|
if: matrix.os != 'ubuntu-latest'
|
|
run: |
|
|
echo "Test result on ${{ matrix.os }} with LLVM ${{ matrix.llvm }}" > result.md
|
|
LLGOROOT=$PWD bash .github/workflows/test_llgo.sh
|
|
|
|
- name: Test _demo and _pydemo
|
|
run: |
|
|
set +e
|
|
LLGOROOT=$PWD bash .github/workflows/test_demo.sh
|
|
exit 0
|
|
|
|
- name: Show test result
|
|
run: cat result.md
|
|
|
|
- name: PR comment with test result
|
|
uses: thollander/actions-comment-pull-request@v2
|
|
if: false
|
|
with:
|
|
filePath: result.md
|
|
comment_tag: test-result-on-${{ matrix.os }}-with-llvm-${{ matrix.llvm }}
|
|
|
|
- name: Upload coverage reports to Codecov
|
|
uses: codecov/codecov-action@v4
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
slug: goplus/llgo
|