mirror of
https://github.com/dolthub/dolt.git
synced 2026-01-04 09:30:38 -06:00
89 lines
3.5 KiB
YAML
89 lines
3.5 KiB
YAML
name: Test Integration with DoltgreSQL
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
issue_comment:
|
|
types: [created, edited, deleted]
|
|
|
|
jobs:
|
|
test-integration:
|
|
if: github.event_name == 'issue_comment' && github.event.issue.pull_request != '' || github.event_name == 'pull_request'
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout Dolt
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
|
|
- name: Setup Git User
|
|
uses: fregante/setup-git-user@v2
|
|
|
|
- name: Merge main into PR
|
|
id: merge_main
|
|
run: |
|
|
git fetch --all --unshallow
|
|
git merge origin/main --no-commit --no-ff
|
|
if [ $? -ne 0 ]; then
|
|
echo "Skipping the remainder of the workflow due to a merge conflict."
|
|
echo "skip=true" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "Merge performed successfully, continuing workflow."
|
|
echo "skip=false" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: Check for a DoltgreSQL PR link
|
|
id: check_doltgresql_pr
|
|
if: steps.merge_main.outputs.skip == 'false'
|
|
run: |
|
|
PR_DESCRIPTION=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
|
https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number != '' && github.event.pull_request.number || github.event.issue.number }})
|
|
COMMENTS=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
|
https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number != '' && github.event.pull_request.number || github.event.issue.number }}/comments)
|
|
echo "$PR_DESCRIPTION$COMMENTS"
|
|
if echo "$PR_DESCRIPTION$COMMENTS" | grep -q "github.com/dolthub/doltgresql/pull/"; then
|
|
echo "comment_exists=true" >> $GITHUB_OUTPUT
|
|
echo "DoltgreSQL PR link exists"
|
|
else
|
|
echo "comment_exists=false" >> $GITHUB_OUTPUT
|
|
echo "DoltgreSQL PR link does not exist"
|
|
fi
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v5
|
|
if: steps.merge_main.outputs.skip == 'false'
|
|
with:
|
|
go-version-file: go/go.mod
|
|
|
|
- name: Clone DoltgreSQL repository
|
|
if: steps.merge_main.outputs.skip == 'false' && steps.check_doltgresql_pr.outputs.comment_exists == 'false'
|
|
run: git clone https://github.com/dolthub/doltgresql.git
|
|
|
|
- name: Build DoltgreSQL's parser
|
|
if: steps.merge_main.outputs.skip == 'false' && steps.check_doltgresql_pr.outputs.comment_exists == 'false'
|
|
run: |
|
|
cd doltgresql
|
|
./postgres/parser/build.sh
|
|
|
|
- name: Test DoltgreSQL against main
|
|
id: test_doltgresql_main
|
|
if: steps.merge_main.outputs.skip == 'false' && steps.check_doltgresql_pr.outputs.comment_exists == 'false'
|
|
continue-on-error: true
|
|
run: |
|
|
cd doltgresql
|
|
go get github.com/dolthub/dolt/go@main
|
|
go mod tidy
|
|
cd testing/go
|
|
go test ./... --count=1 -skip Replication
|
|
|
|
- name: Test DoltgreSQL against PR
|
|
if: steps.merge_main.outputs.skip == 'false' && steps.check_doltgresql_pr.outputs.comment_exists == 'false' && steps.test_doltgresql_main.outcome == 'success'
|
|
run: |
|
|
cd doltgresql
|
|
git reset --hard
|
|
go mod edit -replace github.com/dolthub/dolt/go=../go
|
|
go mod tidy
|
|
cd testing/go
|
|
go test ./... --count=1 -skip Replication
|