Skip to content

Commit

Permalink
ci(no-rest): optimize container ready check
Browse files Browse the repository at this point in the history
- Check for `docker ps` to report exist service to be healthy.
- Move check to latest possible moment just before tests run.
- Mount empty volume to autodeploy to speed up initial start of exist.
  • Loading branch information
line-o committed Nov 18, 2023
1 parent a74bff7 commit b88af73
Showing 1 changed file with 14 additions and 17 deletions.
31 changes: 14 additions & 17 deletions .github/workflows/test-no-rest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,32 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# pull image
- run: docker pull existdb/existdb:release
# create docker container
# --volume $(pwd)/empty:/exist/autodeploy:ro
- name: pull image
run: docker pull existdb/existdb:release
- name: create eXist-db Container
run: docker create --name exist --publish 8080:8080 --publish 8443:8443 existdb/existdb:release
# - name: Start eXist-db Container
# run: docker start exist
# - name: Wait for eXist-db Startup
# run: timeout 90 sh -c 'until nc -z $0 $1; do sleep 3; done' localhost 8080
# get web.xml (use prepared web.xml instead)
# - run: docker cp exist:exist/etc/webapp/WEB-INF/web.xml ./web.xml
# modify web.xml
# - run: cat web.xml | \
run: |
docker create --rm --name exist \
--publish 8080:8080 --publish 8443:8443 \
--volume ./empty:/exist/autodeploy:ro \
existdb/existdb:release
# - name: get web.xml from container (needs to have started before)
# run: docker cp exist:exist/etc/webapp/WEB-INF/web.xml ./web.xml
# - name: modify web.xml
# run: cat web.xml | \
# tr '\n' '\r' | \
# sed -E 's/(<param-name>hidden<\/param-name>\r[[:space:]]+<param-value>)false(<\/param-value>)/\1true\2/' | \
# tr '\r' '\n' > modified-web.xml
- name: Copy modified web.xml
run: docker cp ./spec/fixtures/web-no-rest.xml exist:exist/etc/webapp/WEB-INF/web.xml
- name: Restart eXist-db Container
# run: docker stop exist && docker wait; docker start exist
- name: Start eXist-db Container
run: docker start exist
- name: Wait for eXist-db Startup
run: timeout 90 sh -c 'until nc -z $0 $1; do sleep 3; done' localhost 8080
- name: Use Node.js 20
uses: actions/setup-node@v3
with:
node-version: 20
- run: npm ci --no-optional
- run: npm link
- name: Wait for container to be healthy
run: timeout 60s sh -c 'until docker ps | grep exist | grep -q healthy; do echo "Not ready yet."; sleep 2; done; echo "$(docker ps | grep exist)"'
- run: npm run test:norest

0 comments on commit b88af73

Please sign in to comment.