feat: init docker compose test (#4730)

Job testing if docker compose is working. It triggers on pull_requests.
This commit is contained in:
Quentin G
2024-04-03 18:08:21 +02:00
committed by GitHub
parent 6d23642d28
commit ccd02fe58c
6 changed files with 93 additions and 2 deletions

View File

@ -4,8 +4,14 @@ on:
push:
branches:
- main
paths:
- 'package.json'
- 'packages/twenty-front/**'
pull_request:
types: [labeled]
paths:
- 'package.json'
- 'packages/twenty-front/**'
jobs:
chromatic-deployment:
if: contains(github.event.pull_request.labels.*.name, 'run-chromatic') || github.event_name == 'push'

View File

@ -3,7 +3,13 @@ on:
push:
branches:
- main
paths:
- 'package.json'
- 'packages/twenty-chrome-extension/**'
pull_request:
paths:
- 'package.json'
- 'packages/twenty-chrome-extension/**'
jobs:
chrome-extension-yarn-install:
runs-on: ci-8-cores

View File

@ -3,7 +3,13 @@ on:
push:
branches:
- main
paths:
- 'package.json'
- 'packages/twenty-docs/**'
pull_request:
paths:
- 'package.json'
- 'packages/twenty-docs/**'
jobs:
docs-build:
runs-on: ubuntu-latest
@ -35,4 +41,4 @@ jobs:
token: ${{ github.token }}
filter_mode: nofilter
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ github.token }}
REVIEWDOG_GITHUB_API_TOKEN: ${{ github.token }}

View File

@ -3,7 +3,13 @@ on:
push:
branches:
- main
paths:
- 'package.json'
- 'packages/twenty-front/**'
pull_request:
paths:
- 'package.json'
- 'packages/twenty-front/**'
jobs:
front-yarn-install:
runs-on: ci-8-cores
@ -172,4 +178,4 @@ jobs:
key: root-node_modules-${{hashFiles('yarn.lock')}}
restore-keys: root-node_modules-
- name: Front / Run jest
run: yarn nx coverage twenty-front
run: yarn nx coverage twenty-front

View File

@ -3,7 +3,13 @@ on:
push:
branches:
- main
paths:
- 'package.json'
- 'packages/twenty-server/**'
pull_request:
paths:
- 'package.json'
- 'packages/twenty-server/**'
jobs:
server-test:
runs-on: ubuntu-latest

View File

@ -0,0 +1,61 @@
name: 'Test Docker Compose'
on:
pull_request:
paths:
- 'packages/twenty-docker/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run compose
run: |
echo "Patching docker-compose.yml..."
# change image to localbuild using yq
yq eval 'del(.services.server.image)' -i docker-compose.yml
yq eval '.services.server.build.context = "../../../"' -i docker-compose.yml
yq eval '.services.server.build.dockerfile = "./packages/twenty-docker/twenty/Dockerfile"' -i docker-compose.yml
yq eval '.services.server.restart = "no"' -i docker-compose.yml
yq eval 'del(.services.db.image)' -i docker-compose.yml
yq eval '.services.db.build.context = "../../../"' -i docker-compose.yml
yq eval '.services.db.build.dockerfile = "./packages/twenty-docker/twenty-postgres/Dockerfile"' -i docker-compose.yml
echo "Setting up .env file..."
cp .env.example .env
echo "Generating secrets..."
echo "# === Randomly generated secrets ===" >>.env
echo "ACCESS_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "LOGIN_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "REFRESH_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "FILE_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "POSTGRES_ADMIN_PASSWORD=$(openssl rand -base64 32)" >>.env
echo "Starting server..."
docker compose up -d
docker compose logs db server -f &
pid=$!
echo "Waiting for server to start..."
count=0
while [ ! $(docker inspect --format='{{.State.Health.Status}}' twenty-server-1) = "healthy" ]; do
sleep 1;
count=$((count+1));
if [ $(docker inspect --format='{{.State.Status}}' twenty-server-1) = "exited" ]; then
echo "Server exited"
exit 1
fi
if [ $count -gt 300 ]; then
echo "Failed to start server"
exit 1
fi
done
done
working-directory: ./packages/twenty-docker/