github.com/parquet-go/parquet-go@v0.21.1-0.20240501160520-b3c3a0c3ed6f/.github/workflows/test.yml (about) 1 name: Test 2 on: 3 push: 4 branches: 5 - main 6 pull_request: 7 branches: 8 - "*" 9 10 jobs: 11 test: 12 strategy: 13 matrix: 14 go: 15 - "1.20.x" 16 tags: 17 - "" 18 - purego 19 label: 20 # TODO: add back ARM64 runners 21 # https://github.com/parquet-go/parquet-go/issues/6 22 - ubuntu-latest 23 24 runs-on: ${{ matrix.label }} 25 26 env: 27 PARQUETGODEBUG: tracebuf=1 28 29 steps: 30 - uses: actions/checkout@v3 31 32 - name: Setup Maven Action 33 uses: s4u/setup-maven-action@v1.2.1 34 with: 35 java-version: 17 36 maven-version: 3.9.2 37 38 39 - name: Setup Parquet CLI 40 run: | 41 set -ex 42 wget https://github.com/apache/parquet-mr/archive/refs/tags/apache-parquet-1.13.1.tar.gz 43 tar -xf apache-parquet-1.13.1.tar.gz 44 mvn --file parquet-mr-apache-parquet-1.13.1/parquet-cli/pom.xml install -DskipTests 45 mvn --file parquet-mr-apache-parquet-1.13.1/parquet-cli/pom.xml dependency:copy-dependencies 46 47 - name: Setup Go ${{ matrix.go }} 48 uses: actions/setup-go@v3 49 with: 50 go-version: ${{ matrix.go }} 51 52 - name: Download Dependencies 53 run: go mod download 54 55 - name: Run Tests 56 env: 57 TARGET: parquet-mr-apache-parquet-1.13.1/parquet-cli/target 58 run: > 59 PARQUET_GO_TEST_CLI="java -cp $TARGET/parquet-cli-1.13.1.jar:$TARGET/dependency/* org.apache.parquet.cli.Main" 60 go test -trimpath -race -tags=${{ matrix.tags }} ./... 61 62 - name: Run Benchmarks 63 run: go test -trimpath -short -tags=${{ matrix.tags }} -run '^$' -bench . -benchtime 1x ./... 64 65 format: 66 runs-on: ubuntu-latest 67 68 steps: 69 - uses: actions/checkout@v3 70 71 - name: Setup Go ${{ matrix.go }} 72 uses: actions/setup-go@v3 73 with: 74 go-version: 1.20.x 75 76 - name: Validate formatting 77 run: make format 78 79 # https://github.com/golangci/golangci-lint/issues/2649 80 # lint: 81 # runs-on: ubuntu-latest 82 # steps: 83 # - uses: actions/checkout@v3 84 85 # - uses: actions/setup-go@v3 86 # with: 87 # go-version: 1.20.x 88 89 # - name: golangci-lint 90 # uses: golangci/golangci-lint-action@v3 91 # with: 92 # version: latest