mirror of
https://github.com/dolthub/dolt.git
synced 2026-05-02 11:30:13 -05:00
117 lines
3.9 KiB
YAML
117 lines
3.9 KiB
YAML
name: Test Bats
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
test:
|
|
name: Bats tests
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
os: [ ubuntu-18.04, macos-10.15, windows-2019 ]
|
|
env:
|
|
use_credentials: ${{ secrets.AWS_SECRET_ACCESS_KEY != '' && secrets.AWS_ACCESS_KEY_ID != '' }}
|
|
steps:
|
|
- name: Conditionally Set ENV VARS for AWS tests
|
|
run: |
|
|
if [[ $use_credentials == true ]]; then
|
|
echo "AWS_SDK_LOAD_CONFIG=1" >> $GITHUB_ENV
|
|
echo "AWS_REGION=us-west-2" >> $GITHUB_ENV
|
|
echo "DOLT_BATS_AWS_TABLE=dolt-ci-bats-manifests-us-west-2" >> $GITHUB_ENV
|
|
echo "DOLT_BATS_AWS_BUCKET=dolt-ci-bats-chunks-us-west-2" >> $GITHUB_ENV
|
|
echo "DOLT_BATS_AWS_EXISTING_REPO=aws_remote_bats_tests" >> $GITHUB_ENV
|
|
fi
|
|
- name: Configure AWS Credentials
|
|
if: ${{ env.use_credentials == 'true' }}
|
|
uses: aws-actions/configure-aws-credentials@v1
|
|
with:
|
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
aws-region: us-west-2
|
|
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
|
|
role-duration-seconds: 3600
|
|
- name: Setup Go 1.x
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ^1.13
|
|
id: go
|
|
- name: Setup Python 3.x
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ^3.6
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-node@v1
|
|
with:
|
|
node-version: ^12
|
|
- name: Create CI Bin
|
|
run: |
|
|
mkdir -p ./.ci_bin
|
|
echo "$(pwd)/.ci_bin" >> $GITHUB_PATH
|
|
- name: Install Bats Unix
|
|
if: matrix.os != 'windows-2019'
|
|
run: |
|
|
npm i bats
|
|
echo "$(pwd)/node_modules/.bin" >> $GITHUB_PATH
|
|
working-directory: ./.ci_bin
|
|
- name: Install Bats Windows
|
|
if: matrix.os == 'windows-2019'
|
|
run: |
|
|
git clone https://github.com/bats-core/bats-core.git
|
|
cd bats-core
|
|
./install.sh $HOME
|
|
working-directory: ./.ci_bin
|
|
- name: Install wslpath
|
|
if: matrix.os == 'windows-2019'
|
|
run: |
|
|
choco install wget
|
|
wget 'https://raw.githubusercontent.com/laurent22/wslpath/master/wslpath'
|
|
chmod 755 wslpath
|
|
mv wslpath /usr/bin/
|
|
cp /c/tools/php/php /usr/bin/
|
|
- name: Install Doltpy
|
|
run: |
|
|
pip install doltpy
|
|
- name: Install Dolt Unix
|
|
working-directory: ./go
|
|
run: |
|
|
go build -mod=readonly -o ../.ci_bin/dolt ./cmd/dolt/.
|
|
go build -mod=readonly -o ../.ci_bin/git-dolt ./cmd/git-dolt/.
|
|
go build -mod=readonly -o ../.ci_bin/git-dolt-smudge ./cmd/git-dolt-smudge/.
|
|
go build -mod=readonly -o ../.ci_bin/remotesrv ./utils/remotesrv/.
|
|
- name: Setup Dolt Config
|
|
run: |
|
|
dolt config --global --add user.name 'Dolthub Actions'
|
|
dolt config --global --add user.email 'actions@dolthub.com'
|
|
- name: Install expect
|
|
if: matrix.os == 'ubuntu-18.04'
|
|
run: sudo apt-get install -y expect
|
|
- name: Check expect
|
|
if: matrix.os != 'windows-2019'
|
|
run: expect -v
|
|
- name: Test all Windows
|
|
if: matrix.os == 'windows-2019'
|
|
run: |
|
|
bats --tap .
|
|
working-directory: ./bats
|
|
env:
|
|
IS_WINDOWS: true
|
|
WINDOWS_BASE_DIR: "/d/a"
|
|
- name: Test all Unix
|
|
if: matrix.os != 'windows-2019'
|
|
run: |
|
|
bats --tap .
|
|
working-directory: ./bats
|
|
- name: Discord Notify
|
|
if: always()
|
|
uses: dolthub/ga-discord-notify@master
|
|
with:
|
|
job-status: ${{ job.status }}
|
|
webhook-url: ${{ secrets.DISCORD_WEBHOOK }}
|
|
notify-on-success: false
|