diff --git a/.github/workflows/on-pr-publish.yaml b/.github/workflows/on-pr-publish.yaml index 3e05e1fe..457b4ff2 100644 --- a/.github/workflows/on-pr-publish.yaml +++ b/.github/workflows/on-pr-publish.yaml @@ -23,10 +23,6 @@ jobs: uses: ./.github/workflows/tests.yaml if: ${{ needs.pre_job.outputs.should_skip != 'true' }} needs: pre_job - secrets: - BUILD_HOSTNAME: ${{ secrets.BUILD_HOSTNAME }} - BUILD_USERNAME: ${{ secrets.BUILD_USERNAME }} - BUILD_KEY: ${{ secrets.BUILD_KEY }} with: STACK_ORCHESTRATOR_REF: "f2fd766f5400fcb9eb47b50675d2e3b1f2753702" GO_ETHEREUM_REF: "c339429ff6550d8012d65977fc79f73bba2616e3" diff --git a/.github/workflows/run_unit_test.sh b/.github/workflows/run_unit_test.sh deleted file mode 100755 index 7a311477..00000000 --- a/.github/workflows/run_unit_test.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -set -e -set -o pipefail - -# Set up repo -start_dir=$(pwd) -temp_dir=$(mktemp -d) -cd $temp_dir - -git clone -b $(cat /tmp/git_head_ref) "https://github.com/$(cat /tmp/git_repository).git" -cd ipld-eth-server - -## Remove the branch and github related info. This way future runs wont be confused. -rm -f /tmp/git_head_ref /tmp/git_repository - -# Spin up DB and run migrations -echo 'docker-compose up -d migrations ipld-eth-db' -docker-compose up -d migrations ipld-eth-db -trap "docker-compose down -v --remove-orphans; cd $start_dir ; rm -r $temp_dir" SIGINT SIGTERM ERR -sleep 60 - -# Remove old logs so there's no confusion, then run test -rm -f /tmp/test.log /tmp/return_test.txt -PGPASSWORD=password DATABASE_USER=vdbm DATABASE_PORT=8077 DATABASE_PASSWORD=password DATABASE_HOSTNAME=localhost DATABASE_NAME=vulcanize_testing make test | tee /tmp/test.log -echo $? > /tmp/return_test.txt - -# Clean up -docker-compose down -v --remove-orphans -cd $start_dir -rm -fr $temp_dir diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index f251883b..1a07404f 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -1,13 +1,6 @@ name: Test the stack. on: workflow_call: - secrets: - BUILD_HOSTNAME: - required: true - BUILD_USERNAME: - required: true - BUILD_KEY: - required: true inputs: STACK_ORCHESTRATOR_REF: required: true @@ -31,10 +24,6 @@ jobs: name: Run unit tests env: GOPATH: /tmp/go - # To run the unit tests you need to add secrets to your repository. - BUILD_HOSTNAME: ${{ secrets.BUILD_HOSTNAME }} - BUILD_USERNAME: ${{ secrets.BUILD_USERNAME }} - BUILD_KEY: ${{ secrets.BUILD_KEY }} runs-on: ubuntu-latest steps: @@ -45,38 +34,18 @@ jobs: with: go-version: 1.19.7 - # Passed experience with GHA has taught me to store variables in files instead of passing them as variables. - - name: Output variables to files - run: | - echo $GITHUB_REPOSITORY > /tmp/git_repository - [ -z "$GITHUB_HEAD_REF" ] && echo $GITHUB_REF_NAME > /tmp/git_head_ref || echo $GITHUB_HEAD_REF > /tmp/git_head_ref - echo "-----BEGIN OPENSSH PRIVATE KEY-----" >> /tmp/key - echo ${{ env.BUILD_KEY }} >> /tmp/key - echo "-----END OPENSSH PRIVATE KEY-----" >> /tmp/key - chmod 400 /tmp/key - cat /tmp/git_repository - cat /tmp/git_head_ref + - name: Bring up docker timescaledb container + run: docker compose up -d ipld-eth-db - - name: Raw SCP + - name: Run db migrations run: | - scp -o 'StrictHostKeyChecking no' -o UserKnownHostsFile=/dev/null -q -i /tmp/key /tmp/git_repository ${{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/git_repository - scp -o 'StrictHostKeyChecking no' -o UserKnownHostsFile=/dev/null -q -i /tmp/key /tmp/git_head_ref ${{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/git_head_ref - scp -o 'StrictHostKeyChecking no' -o UserKnownHostsFile=/dev/null -q -i /tmp/key .github/workflows/run_unit_test.sh ${{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/run_unit_test.sh + sleep 30; + docker compose up -d migrations - - name: Trigger Unit Test + - name: Run test run: | - ssh -o 'StrictHostKeyChecking no' -o UserKnownHostsFile=/dev/null -q -i /tmp/key ${{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }} go install github.com/onsi/ginkgo/ginkgo@latest - ssh -o 'StrictHostKeyChecking no' -o UserKnownHostsFile=/dev/null -q -i /tmp/key ${{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }} /tmp/run_unit_test.sh - - - name: Get the logs and cat them - run: | - scp -o 'StrictHostKeyChecking no' -o UserKnownHostsFile=/dev/null -q -i /tmp/key ${{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/test.log . - cat ./test.log - - - name: Check Error Code - run: | - scp -o 'StrictHostKeyChecking no' -o UserKnownHostsFile=/dev/null -q -i /tmp/key ${{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/return_test.txt . - [ $(cat ./return_test.txt) -eq 0 ] + sleep 30; + PGPASSWORD=password DATABASE_USER=vdbm DATABASE_PORT=8077 DATABASE_PASSWORD=password DATABASE_HOSTNAME=127.0.0.1 DATABASE_NAME=vulcanize_testing make test integrationtest: name: Run integration tests