diff mbox series

[v2] ci: add docker-compose tests

Message ID 20211127094015.2953725-1-vicamo@gmail.com
State Accepted
Headers show
Series [v2] ci: add docker-compose tests | expand

Commit Message

You-Sheng Yang Nov. 27, 2021, 9:40 a.m. UTC
v2: fix intermittent error.

Signed-off-by: You-Sheng Yang <vicamo@gmail.com>
---
 .github/workflows/ci.yaml                     | 46 +++++++++++++++++++
 ...docker-compose-tests-69f13bc725725754.yaml |  4 ++
 2 files changed, 50 insertions(+)
 create mode 100644 releasenotes/notes/ci-add-docker-compose-tests-69f13bc725725754.yaml

Comments

Stephen Finucane Nov. 29, 2021, 5:40 p.m. UTC | #1
On Sat, 2021-11-27 at 17:40 +0800, You-Sheng Yang wrote:
> v2: fix intermittent error.
> 
> Signed-off-by: You-Sheng Yang <vicamo@gmail.com>

This is great work. Thank you! I removed the release note since this isn't end-
user facing and then applied this to master.

Cheers,
Stephen
diff mbox series

Patch

diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index d2061a9..f4a33b3 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -102,3 +102,49 @@  jobs:
           name: html-docs-build
           path: docs/_build/html
           retention-days: 7
+  docker-compose:
+    name: Docker Image tests
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        db: [postgres, mysql]
+    steps:
+      - name: Checkout source code
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+      - name: Set up Python 3.9
+        uses: actions/setup-python@v2
+        with:
+          python-version: 3.9
+      - name: Bring up docker-compose service
+        env:
+          COMPOSE_FILE: ${{ matrix.db == 'mysql' && 'docker-compose.yml' || 'docker-compose-pg.yml' }}
+        run: |
+          docker-compose build --build-arg UID=$(id -u) --build-arg GID=$(id -g)
+          docker-compose up --detach
+
+          for count in $(seq 50); do \
+            if curl --fail --silent "http://localhost:8000"; then \
+              break; \
+            fi; \
+            sleep 1; echo -n .; \
+          done
+          echo
+
+          docker-compose exec -T web \
+              python manage.py createsuperuser \
+              --username patchwork --no-input --email test@example.com
+          { echo patchwork; echo patchwork; } | \
+              docker-compose exec -T web \
+              python manage.py changepassword patchwork
+          docker-compose ps
+      - name: Test client access (git-pw)
+        run: |
+          python -m pip install git-pw
+          git pw --debug \
+              --server http://localhost:8000/api/1.2 --project patchwork \
+              --username patchwork --password patchwork series list
+      - name: Dump container logs
+        if: ${{ always() }}
+        run: docker-compose logs --no-color --timestamps
diff --git a/releasenotes/notes/ci-add-docker-compose-tests-69f13bc725725754.yaml b/releasenotes/notes/ci-add-docker-compose-tests-69f13bc725725754.yaml
new file mode 100644
index 0000000..2a24c99
--- /dev/null
+++ b/releasenotes/notes/ci-add-docker-compose-tests-69f13bc725725754.yaml
@@ -0,0 +1,4 @@ 
+---
+other:
+  - |
+    Add GitHub Actions for both mysql/postgres docker-compose.yml.