From 142d77e1efab40f8dd66757b32d6c2a16f29df1c Mon Sep 17 00:00:00 2001 From: Dustin Brown Date: Mon, 9 Aug 2021 12:16:40 -0700 Subject: [PATCH] /.github/workflows/ci-bats-windows.yaml: run bats files in parallel --- .github/workflows/ci-bats-windows.yaml | 80 ++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-bats-windows.yaml b/.github/workflows/ci-bats-windows.yaml index ced24f701f..f3f96baeda 100644 --- a/.github/workflows/ci-bats-windows.yaml +++ b/.github/workflows/ci-bats-windows.yaml @@ -61,15 +61,87 @@ jobs: process.exit(1); } test-per-file: - name: Build and Deploy Services to Dev + name: Test file needs: format-files-output - runs-on: ubuntu-18.04 + defaults: + run: + shell: bash + runs-on: windows-2019 + env: + use_credentials: ${{ secrets.AWS_SECRET_ACCESS_KEY != '' && secrets.AWS_ACCESS_KEY_ID != '' }} strategy: matrix: file: ${{ fromJson(needs.format-files-output.outputs.files) }} steps: - - name: Print file name - run : echo "Received file ${{ matrix.file }}" + - 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.15 + 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 Windows + run: | + git clone https://github.com/bats-core/bats-core.git + cd bats-core + ./install.sh $HOME + working-directory: ./.ci_bin + - name: Install wslpath + 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 + 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/. + go build -mod=readonly -o ../.ci_bin/noms ./store/cmd/noms/. + - name: Setup Dolt Config + run: | + dolt config --global --add user.name 'Dolthub Actions' + dolt config --global --add user.email 'actions@dolthub.com' + - name: Test Bats Head + run: bats --tap ${{ matrix.file }} + working-directory: ./integration-tests/bats + env: + IS_WINDOWS: true + WINDOWS_BASE_DIR: "/d/a" # test-bats-head: # name: Bats tests part 1