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/