Skip to content

up

up #50

Workflow file for this run

name: Docker
on:
push:
branches:
- main
- develop
- current
pull_request:
branches:
- develop
release:
types: [published]
jobs:
tests:
name: Build containers and process tests
runs-on: ubuntu-latest
env:
DOCKER_BUILDKIT: 1
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: True
- name: copy cur environment
run: |
./scripts/init_env_file.sh .env.example settings.ini.test .env
- name: Copy config samples
run: |
./scripts/init_applications_config.sh .env
# - name: Build all images
# run: |
# ./scripts/build_geonature_all.sh .env
- name: Networks
run: |
docker network create traefik_gds
- name: Lauch docker compose
run: |
docker compose up -d
- name: Save Logs in temp file
run: |
docker compose logs -f > /tmp/docker_compose.log &
- name: test containers running
uses: nick-fields/retry@v2
with:
timeout_seconds: 120
max_attempts: 10
retry_wait_seconds: 30
command: |
docker compose ps
nb_services_running=$(docker compose ps --services --filter 'status=running' | wc -l)
nb_services_healthy=$(docker compose ps | grep '(healthy)'| wc -l)
echo nb_services_running $nb_services_running
echo nb_services_healthy $nb_services_healthy
[ "$nb_services_running" = "9" ] || exit 1
[ "$nb_services_healthy" = "7" ] || exit 1
# - name: test app response
# run: |
# ./scripts/test_docker_url.sh .env
- name: test reload
run: |
./scripts/test_docker_reload.sh .env
- name: Log if fail
if: ${{ failure() }}
run: |
docker compose logs
cat /tmp/docker_compose.log
docker compose ps
# publish:
# name: Build and publish dockerimages
# if: ${{ github.event_name != 'pull_request' }}
# runs-on: ubuntu-latest
# # needs: tests
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# with:
# submodules: True
# - name: Git Sumbodule Update
# run: |
# cur=$(pwd)
# for app in "GeoNature" "GeoNature-atlas" "UsersHub" "TaxHub"; do
# cd ./sources/${app}
# git submodule init
# git submodule update
# cd $cur
# done
# - name: Set Environnement variables
# run: |
# scripts/init_env.sh >> $GITHUB_ENV
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2
# - name: Login to GHCR
# uses: docker/login-action@v2
# if: github.event_name != 'pull_request'
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
# - name: Build and export geonature backend wheels image
# id: build-wheels
# uses: docker/build-push-action@v4
# with:
# context: ./sources/GeoNature
# file: ./sources/GeoNature/backend/Dockerfile
# target: wheels
# push: true
# tags: "${{ env.GN_BACKEND_TAGS }}-wheels"
# labels: ${{ env.GN_LABELS }}
# - name: Build and export geonature backend image (+ 4 modules)
# id: build-prod
# uses: docker/build-push-action@v4
# with:
# context: .
# file: ./build/Dockerfile-geonature-backend
# target: prod-extra
# push: true
# tags: "${{ env.GN_BACKEND_TAGS }}"
# labels: ${{ env.GN_LABELS }}
# build-args: GEONATURE_BACKEND_IMAGE=${{env.GN_BACKEND_IMAGE}}
# - name: Build and export frontend source
# uses: docker/build-push-action@v4
# with:
# context: ./sources/GeoNature
# file: ./sources/GeoNature/frontend/Dockerfile
# target: source
# tags: "${{env.GN_FRONTEND_TAGS}}-source"
# push: true
# - name: Build and export frontend nginx
# uses: docker/build-push-action@v4
# with:
# context: ./sources/GeoNature
# file: ./sources/GeoNature/frontend/Dockerfile
# target: prod-base
# tags: "${{env.GN_FRONTEND_TAGS}}-nginx"
# push: true
# - name: Build and export frontend + 4 modules
# uses: docker/build-push-action@v4
# with:
# context: .
# file: ./build/Dockerfile-geonature-frontend
# tags: "${{env.GN_FRONTEND_TAGS}}"
# build-args: GEONATURE_FRONTEND_IMAGE=${{env.GN_FRONTEND_IMAGE}}
# push: true
# - name: Build and export Usershub
# uses: docker/build-push-action@v4
# with:
# context: ./sources/UsersHub
# file: ./sources/UsersHub/Dockerfile
# tags: "${{env.UH_TAGS}}"
# push: true
# - name: Build and export TaxHub
# uses: docker/build-push-action@v4
# with:
# context: ./sources/TaxHub
# file: ./sources/TaxHub/Dockerfile
# tags: "${{env.TH_TAGS}}"
# push: true
# - name: Build and export GeoNature-atlas
# uses: docker/build-push-action@v4
# with:
# context: ./sources/GeoNature-atlas
# file: ./sources/GeoNature-atlas/Dockerfile
# tags: "${{env.ATLAS_TAGS}}"
# push: true