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