mirror of
https://github.com/twentyhq/twenty.git
synced 2024-11-26 04:17:15 +03:00
b914182b78
This Pull Request addresses the need to optimize our Continuous Integration (CI) workflows for Playwright tests and release processes. The changes implemented aim to reduce unnecessary resource usage by conditionally executing jobs based on relevant file changes and Implement https://github.com/tj-actions/changed-files step ## Changes logs - Updated `ci-test-docker-compose.yaml , ci-chrome-extension.yaml ` to check for changed files before running tests. - Updated `ci-front.yaml , ci-utils.yaml , ci-website.yaml , ci-server.yaml` to check for changed files before running tests. - Enhanced `playwright.yml` to skip unnecessary tests based on file changes.
70 lines
2.6 KiB
YAML
70 lines
2.6 KiB
YAML
name: 'Test Docker Compose'
|
|
on:
|
|
pull_request:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Check for changed files
|
|
id: changed-files
|
|
uses: tj-actions/changed-files@v11
|
|
with:
|
|
files: |
|
|
packages/twenty-docker/**
|
|
docker-compose.yml
|
|
- name: Skip if no relevant changes
|
|
if: steps.changed-files.outputs.any_changed != 'true'
|
|
run: echo "No relevant changes detected. Marking as valid."
|
|
|
|
- name: Run compose
|
|
if: steps.changed-files.outputs.any_changed == 'true'
|
|
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
|
|
working-directory: ./packages/twenty-docker/
|