From 01fe80acd6e1a08027be3f852d408aee88965954 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Fri, 10 Nov 2023 03:08:15 +0900 Subject: [PATCH 1/2] github/workflows: update runs-on to ubuntu-22 and actions@checkout to v4 Signed-off-by: Koichi Shiraishi --- .github/workflows/{test.yml => test.yaml} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename .github/workflows/{test.yml => test.yaml} (88%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yaml similarity index 88% rename from .github/workflows/test.yml rename to .github/workflows/test.yaml index eb19ca0..7fc83b6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yaml @@ -14,11 +14,11 @@ env: jobs: test: name: test - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Test in Docker run: | From f41c465594f003ecca39e3b71c1de879751a3bf9 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Fri, 10 Nov 2023 04:05:05 +0900 Subject: [PATCH 2/2] github/workflows: support multiple GOOS Signed-off-by: Koichi Shiraishi --- .github/workflows/test.yaml | 71 +++++++++++++++++++++++++++++++++---- 1 file changed, 65 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 7fc83b6..12a82aa 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -5,21 +5,80 @@ on: branches: - "main" pull_request: - branches: - - "main" + +defaults: + run: + shell: bash env: LLVM_VERSION: 15 jobs: test: - name: test - runs-on: ubuntu-22.04 + strategy: + matrix: + os: + - "ubuntu-22.04" # https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md + - "macos-13" # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md + go-version: + - "1.20.x" + - "1.21.x" + fail-fast: false + + runs-on: + labels: ${{ matrix.os }} + + env: + # for Homebrew: https://docs.brew.sh/Manpage + HOMEBREW_PREFIX: /usr/local + HOMEBREW_CURL_VERBOSE: 1 + HOMEBREW_DEVELOPER: 1 + HOMEBREW_DISPLAY_INSTALL_TIMES: 1 + HOMEBREW_NO_ANALYTICS: 1 + HOMEBREW_NO_AUTO_UPDATE: 1 + HOMEBREW_NO_INSTALL_CLEANUP: 1 + HOMEBREW_NO_INSTALL_UPGRADE: 1 + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 + HOMEBREW_VERBOSE: 1 steps: - name: Checkout uses: actions/checkout@v4 - - name: Test in Docker + - name: Install Go + uses: actions/setup-go@v4 + with: + go-version: ${{ matrix.go-version }} + check-latest: true + + - name: Setup install LLVM + if: matrix.os == 'ubuntu-22.04' + run: | + if ! command -v brew > /dev/null 2>&1; then + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + echo "PATH=/home/linuxbrew/.linuxbrew/bin:$PATH" >> ${GITHUB_ENV} + fi + echo "HOMEBREW_CACHE=${HOME}/.cache/Homebrew" >> ${GITHUB_ENV} + echo "CPPFLAGS=-I${HOMEBREW_PREFIX}/opt/llvm@15/include:${CPPFLAGS}" >> ${GITHUB_ENV} + echo "LDFLAGS=-L${HOMEBREW_PREFIX}/opt/llvm@15/lib:${LDFLAGS}" >> ${GITHUB_ENV} + + - name: Install latest LLVM toolchain + if: matrix.os == 'ubuntu-22.04' + run: | + mkdir -p ${HOMEBREW_CACHE} + brew install llvm@${LLVM_VERSION} + + - name: Cache brewed LLVM + uses: actions/cache@v3 + with: + key: ${{ matrix.os }}-homebrew + path: $[HOMEBREW_CACHE} + + - name: Test + if: matrix.os == 'ubuntu-22.04' run: | - docker container run -t --mount type=bind,src=$PWD,dst=/go/src/github.com/go-clang/clang-v${LLVM_VERSION} -w /go/src/github.com/go-clang/clang-v${LLVM_VERSION} ghcr.io/go-clang/base:${LLVM_VERSION} make test + docker container run -t \ + --mount type=bind,src=$PWD,dst=/go/src/github.com/go-clang/clang-v${LLVM_VERSION} \ + --workdir /go/src/github.com/go-clang/clang-v${LLVM_VERSION} \ + ghcr.io/go-clang/base:${LLVM_VERSION} \ + make test