Skip to content

Shallow Clone

Shallow Clone #2538

name: Test Bats Unix Remote
on:
pull_request:
branches: [ main ]
paths:
- 'go/**'
- 'integration-tests/**'
concurrency:
group: ci-bats-unix-remote${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test:
name: Bats tests
defaults:
run:
shell: bash
runs-on: ubuntu-22.04
strategy:
fail-fast: true
env:
use_credentials: ${{ secrets.AWS_SECRET_ACCESS_KEY != '' && secrets.AWS_ACCESS_KEY_ID != '' }}
# We only run these as seaparte workflow if we do not have AWS credentials.
steps:
- name: Setup Go 1.x
if: ${{ env.use_credentials != 'true' }}
uses: actions/setup-go@v3
with:
go-version: ^1.21
id: go
- name: Setup Python 3.x
if: ${{ env.use_credentials != 'true' }}
uses: actions/setup-python@v4
with:
python-version: "3.10"
- uses: actions/checkout@v3
if: ${{ env.use_credentials != 'true' }}
- uses: actions/setup-node@v3
if: ${{ env.use_credentials != 'true' }}
with:
node-version: ^16
- name: Create CI Bin
if: ${{ env.use_credentials != 'true' }}
run: |
mkdir -p ./.ci_bin
echo "$(pwd)/.ci_bin" >> $GITHUB_PATH
- name: Install Bats
if: ${{ env.use_credentials != 'true' }}
run: |
npm i bats
echo "$(pwd)/node_modules/.bin" >> $GITHUB_PATH
working-directory: ./.ci_bin
- name: Install Python Deps
if: ${{ env.use_credentials != 'true' }}
run: |
pip install mysql-connector-python
pip install pandas
pip install pyarrow
- name: Install Dolt
if: ${{ env.use_credentials != 'true' }}
working-directory: ./go
run: |
go build -mod=readonly -o ../.ci_bin/dolt ./cmd/dolt/.
go build -mod=readonly -o ../.ci_bin/remotesrv ./utils/remotesrv/.
go build -mod=readonly -o ../.ci_bin/noms ./store/cmd/noms/.
- name: Setup Dolt Config
if: ${{ env.use_credentials != 'true' }}
run: |
dolt config --global --add user.name 'Dolthub Actions'
dolt config --global --add user.email '[email protected]'
- name: Install expect
if: matrix.os == 'ubuntu-22.04' && env.use_credentials != 'true'
run: sudo apt-get install -y expect
- name: Install Maven
if: ${{ env.use_credentials != 'true' }}
working-directory: ./.ci_bin
run: |
curl -LO https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
tar -xf apache-maven-3.9.4-bin.tar.gz
echo "$(pwd)/apache-maven-3.9.4/bin" >> $GITHUB_PATH
- name: Install Hadoop
if: ${{ env.use_credentials != 'true' }}
working-directory: ./.ci_bin
run: |
curl -LO https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar xvf hadoop-3.3.6.tar.gz
echo "$(pwd)/hadoop-3.3.6/bin" >> $GITHUB_PATH
- name: Install parquet-cli
if: ${{ env.use_credentials != 'true' }}
id: parquet_cli
working-directory: ./.ci_bin
run: |
curl -OL https://github.com/apache/parquet-mr/archive/refs/tags/apache-parquet-1.12.3.tar.gz
tar zxvf apache-parquet-1.12.3.tar.gz
cd parquet-mr-apache-parquet-1.12.3/parquet-cli
mvn clean install -DskipTests
runtime_jar="$(pwd)"/target/parquet-cli-1.12.3-runtime.jar
echo "runtime_jar=$runtime_jar" >> $GITHUB_OUTPUT
- name: Check expect
if: ${{ env.use_credentials != 'true' }}
run: expect -v
- name: Test all Unix
if: ${{ env.use_credentials != 'true' }}
env:
SQL_ENGINE: "remote-engine"
PARQUET_RUNTIME_JAR: ${{ steps.parquet_cli.outputs.runtime_jar }}
BATS_TEST_RETRIES: "3"
run: |
bats --tap .
working-directory: ./integration-tests/bats