aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/autogpt-docker-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/autogpt-docker-ci.yml')
-rw-r--r--.github/workflows/autogpt-docker-ci.yml49
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 }}