diff options
Diffstat (limited to '.github/workflows/autogpt-docker-ci.yml')
-rw-r--r-- | .github/workflows/autogpt-docker-ci.yml | 49 |
1 files changed, 38 insertions, 11 deletions
diff --git a/.github/workflows/autogpt-docker-ci.yml b/.github/workflows/autogpt-docker-ci.yml index a6f336a75..dc555c381 100644 --- a/.github/workflows/autogpt-docker-ci.yml +++ b/.github/workflows/autogpt-docker-ci.yml @@ -4,11 +4,13 @@ on: push: branches: [ master, development ] paths: + - '.github/workflows/autogpt-docker-ci.yml' - 'autogpts/autogpt/**' - '!autogpts/autogpt/tests/vcr_cassettes' pull_request: branches: [ master, development, release-* ] paths: + - '.github/workflows/autogpt-docker-ci.yml' - 'autogpts/autogpt/**' - '!autogpts/autogpt/tests/vcr_cassettes' @@ -22,6 +24,8 @@ defaults: env: IMAGE_NAME: auto-gpt + DEPLOY_IMAGE_NAME: ${{ secrets.DOCKER_USER }}/auto-gpt + DEV_IMAGE_TAG: latest-dev jobs: build: @@ -85,12 +89,27 @@ jobs: test: runs-on: ubuntu-latest timeout-minutes: 10 + + services: + minio: + image: minio/minio:edge-cicd + options: > + --name=minio + --health-interval=10s --health-timeout=5s --health-retries=3 + --health-cmd="curl -f http://localhost:9000/minio/health/live" + steps: - name: Check out repository uses: actions/checkout@v3 with: submodules: true + - name: Log in to Docker hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 @@ -100,7 +119,9 @@ jobs: with: context: autogpts/autogpt build-args: BUILD_TYPE=dev # include pytest - tags: ${{ env.IMAGE_NAME }} + tags: > + ${{ env.IMAGE_NAME }}, + ${{ env.DEPLOY_IMAGE_NAME }}:${{ env.DEV_IMAGE_TAG }} load: true # save to docker images # cache layers in GitHub Actions cache to speed up builds cache-from: type=gha,scope=autogpt-docker-dev @@ -112,24 +133,30 @@ jobs: CI: true PLAIN_OUTPUT: True OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + S3_ENDPOINT_URL: http://minio:9000 + AWS_ACCESS_KEY_ID: minioadmin + AWS_SECRET_ACCESS_KEY: minioadmin run: | set +e - test_output=$( - docker run --env CI --env OPENAI_API_KEY \ - --entrypoint poetry ${{ env.IMAGE_NAME }} run \ - pytest -v --cov=autogpt --cov-branch --cov-report term-missing \ - --numprocesses=4 --durations=10 \ - tests/unit tests/integration 2>&1 - ) - test_failure=$? + docker run --env CI --env OPENAI_API_KEY \ + --network container:minio \ + --env S3_ENDPOINT_URL --env AWS_ACCESS_KEY_ID --env AWS_SECRET_ACCESS_KEY \ + --entrypoint poetry ${{ env.IMAGE_NAME }} run \ + pytest -v --cov=autogpt --cov-branch --cov-report term-missing \ + --numprocesses=4 --durations=10 \ + tests/unit tests/integration 2>&1 | tee test_output.txt - echo "$test_output" + test_failure=${PIPESTATUS[0]} cat << $EOF >> $GITHUB_STEP_SUMMARY # Tests $([ $test_failure = 0 ] && echo '✅' || echo '❌') \`\`\` - $test_output + $(cat test_output.txt) \`\`\` $EOF exit $test_failure + + - if: github.event_name == 'push' && github.ref_name == 'master' + name: Push image to Docker Hub + run: docker push ${{ env.DEPLOY_IMAGE_NAME }}:${{ env.DEV_IMAGE_TAG }} |