github.com/tsuna/gohbase@v0.0.0-20250731002811-4ffcadfba63e/.github/workflows/ci.yml (about)

     1  name: CI
     2  
     3  on:
     4    push:
     5      branches: [master]
     6    pull_request:
     7      branches: [master]
     8  
     9  jobs:
    10    build-and-test:
    11      runs-on: ubuntu-22.04
    12      strategy:
    13        matrix:
    14          go: [~1.23, ^1]
    15      steps:
    16        - uses: actions/checkout@v4
    17  
    18        - name: Setup | Download HBase
    19          run: |
    20            ver=2.4.8 &&
    21            wget -nv https://archive.apache.org/dist/hbase/$ver/hbase-$ver-bin.tar.gz &&
    22            echo "2CCB816619FA651E72BF7C110FC2455705654276CFEBE067A7B9D8B39641A8A8BB827BE6EBBB7CE9D6A8441B60B6836FF3A3CA2C394952D688621F8B22F9C310  hbase-$ver-bin.tar.gz" | sha512sum --strict --check - &&
    23            tar zxf hbase-$ver-bin.tar.gz --exclude=docs &&
    24            ln -s hbase-$ver hbase
    25  
    26        - name: Setup | Config HBase
    27          # quick and dirty sed script to insert config into
    28          # hbase-site.xml.
    29          #
    30          # Set scanner timeout to 5s from default of 60s, to make tests
    31          # for scanner expiration faster.
    32          run: |
    33            sed -i '/<\/configuration>/i \
    34            <property><name>hbase.client.scanner.timeout.period</name><value>5000</value></property>
    35            ' hbase/conf/hbase-site.xml
    36  
    37        - name: Setup | Start HBase
    38          run: hbase/bin/hbase-daemon.sh --config hbase/conf start master
    39  
    40        - name: Setup | Go
    41          uses: actions/setup-go@v5
    42          with:
    43            go-version: ${{ matrix.go }}
    44  
    45        - name: Build
    46          run: go build -v ./...
    47  
    48        - name: Check
    49          run: make check
    50  
    51        - name: Test
    52          run: make integration_cover HBASE_HOME=hbase
    53  
    54        - name: Upload to Codecov
    55          uses: codecov/codecov-action@v2.1.0
    56  
    57        - name: Upload HBase logs
    58          uses: actions/upload-artifact@v4
    59          if: ${{ failure() }}
    60          with:
    61            name: hbase-logs
    62            path: hbase/logs/