From fd99f63bd693dc2ee8b06592825b07b491a4df52 Mon Sep 17 00:00:00 2001 From: Li Jie Date: Thu, 9 Jan 2025 16:30:20 +0800 Subject: [PATCH] ci: hello world testing with different version declarations in go.mod and go versions --- .github/actions/test-helloworld/action.yml | 35 +++++++++++++++ .github/workflows/llgo.yml | 51 ++++++++++++++++++++++ compiler/go.mod | 2 +- 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 .github/actions/test-helloworld/action.yml diff --git a/.github/actions/test-helloworld/action.yml b/.github/actions/test-helloworld/action.yml new file mode 100644 index 00000000..07b0f9fb --- /dev/null +++ b/.github/actions/test-helloworld/action.yml @@ -0,0 +1,35 @@ +name: 'Test Hello World' +description: 'Test Hello World with specific Go and module versions' +inputs: + go-version: + description: 'Go version being tested' + required: true + mod-version: + description: 'Go module version to use' + required: true +runs: + using: "composite" + steps: + - name: Test Hello World + shell: bash + run: | + echo "Testing with Go ${{ inputs.go-version }} and go.mod ${{ inputs.mod-version }}" + mkdir -p _test/helloworld && cd _test/helloworld + cat > go.mod << 'EOL' + module hello + go ${{ inputs.mod-version }} + EOL + cat > main.go << 'EOL' + package main + import ( + "fmt" + "github.com/goplus/llgo/c" + ) + func main() { + fmt.Println("Hello, LLGo!") + println("Hello, LLGo!") + c.Printf(c.Str("Hello, LLGo!\n")) + } + EOL + go mod tidy + llgo run . diff --git a/.github/workflows/llgo.yml b/.github/workflows/llgo.yml index 08f6e24d..e9722c5f 100644 --- a/.github/workflows/llgo.yml +++ b/.github/workflows/llgo.yml @@ -92,3 +92,54 @@ jobs: run: | echo "Test lldb with llgo plugin on ${{matrix.os}} with LLVM ${{matrix.llvm}}" bash _lldb/runtest.sh -v + + helloworld-test: + strategy: + matrix: + os: [ubuntu-24.04, macos-latest] + llvm: [18] + go: ['1.20', '1.21', '1.22', '1.23'] + runs-on: ${{matrix.os}} + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + uses: ./.github/actions/setup-deps + with: + llvm-version: ${{matrix.llvm}} + + - name: Set up Go 1.23 for building llgo + uses: actions/setup-go@v5 + with: + go-version: '1.23' + + - name: Install llgo + working-directory: compiler + run: | + go install ./... + echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV + + - name: Set up Go for testing + uses: actions/setup-go@v5 + with: + go-version: ${{matrix.go}} + + - name: Test Hello World with go.mod 1.20 + if: matrix.go == '1.20' || matrix.go == '1.21' || matrix.go == '1.22' || matrix.go == '1.23' + uses: ./.github/actions/test-helloworld + with: + go-version: ${{matrix.go}} + mod-version: '1.20' + + - name: Test Hello World with go.mod 1.21 + if: matrix.go == '1.21' || matrix.go == '1.22' || matrix.go == '1.23' + uses: ./.github/actions/test-helloworld + with: + go-version: ${{matrix.go}} + mod-version: '1.21' + + - name: Test Hello World with go.mod 1.22 + if: matrix.go == '1.22' || matrix.go == '1.23' + uses: ./.github/actions/test-helloworld + with: + go-version: ${{matrix.go}} + mod-version: '1.22' diff --git a/compiler/go.mod b/compiler/go.mod index db64bd11..9e24daab 100644 --- a/compiler/go.mod +++ b/compiler/go.mod @@ -1,6 +1,6 @@ module github.com/goplus/llgo/compiler -go 1.23.0 +go 1.22.0 require ( github.com/goplus/gogen v1.16.4