Compare commits
118 Commits
v4.0.1
...
release-v4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
070c731607 | ||
|
|
a5a0b0b24b | ||
|
|
61dcde88d1 | ||
|
|
3984ad2e77 | ||
|
|
8861afc779 | ||
|
|
7cb2d3466f | ||
|
|
4116868c49 | ||
|
|
77f5909110 | ||
|
|
e6c1248cf2 | ||
|
|
2799a905e5 | ||
|
|
56f0713de5 | ||
|
|
ac34dc3640 | ||
|
|
36c6771396 | ||
|
|
8922bf00d7 | ||
|
|
8373b9ae91 | ||
|
|
0871d0ee0a | ||
|
|
5f99883b5c | ||
|
|
ff467bee61 | ||
|
|
cf53a4b6d9 | ||
|
|
493990078f | ||
|
|
2e50ade5aa | ||
|
|
64a378b828 | ||
|
|
dc129e1e13 | ||
|
|
fdf7333e07 | ||
|
|
401a1ab394 | ||
|
|
291c45e9a1 | ||
|
|
4a61ff3192 | ||
|
|
c3bf683b73 | ||
|
|
f708e35105 | ||
|
|
ebb19089cf | ||
|
|
6855f71257 | ||
|
|
e7e86db9a8 | ||
|
|
c6d49491ad | ||
|
|
851679e338 | ||
|
|
95749e3fb3 | ||
|
|
9ef03e7ecd | ||
|
|
0e97ed155c | ||
|
|
bf01ed29cc | ||
|
|
c7b142c091 | ||
|
|
531ad65adb | ||
|
|
d5fb0a66f9 | ||
|
|
d68c1ee112 | ||
|
|
6df597e14c | ||
|
|
fe11380291 | ||
|
|
266b8bc42e | ||
|
|
7218b23e5c | ||
|
|
491a6af9f3 | ||
|
|
84dd6ce88e | ||
|
|
aa58fe8084 | ||
|
|
e4d6a0cec2 | ||
|
|
5399db9668 | ||
|
|
d93ae71ff4 | ||
|
|
5352ff10d6 | ||
|
|
e305599235 | ||
|
|
345b4bddcd | ||
|
|
c366daffb2 | ||
|
|
6ee87e323f | ||
|
|
acb4345ad6 | ||
|
|
7ce00f2ee7 | ||
|
|
d4ecf6d533 | ||
|
|
98dda480c1 | ||
|
|
7ce2f43840 | ||
|
|
1d5dca4aa8 | ||
|
|
8586bfa0ce | ||
|
|
fe40ddf340 | ||
|
|
1737cfa437 | ||
|
|
948d17d16c | ||
|
|
45ece65de0 | ||
|
|
baba2f18b5 | ||
|
|
4fbd954613 | ||
|
|
4ca8ede165 | ||
|
|
ac5b3dc557 | ||
|
|
7552e8687d | ||
|
|
b40faca993 | ||
|
|
815255f03d | ||
|
|
18e84ac5c8 | ||
|
|
a24351b736 | ||
|
|
9cf289a930 | ||
|
|
8ea2f3fb36 | ||
|
|
deef0e1097 | ||
|
|
a8dbdd4399 | ||
|
|
5b7359b5e0 | ||
|
|
81c520559d | ||
|
|
19311509d0 | ||
|
|
522c8cc5f2 | ||
|
|
5e6cb3aa8d | ||
|
|
0564afcec4 | ||
|
|
3df9cdcacb | ||
|
|
c30d0efe1d | ||
|
|
b8d7b7eb29 | ||
|
|
135a22bf5b | ||
|
|
b9d7538819 | ||
|
|
897c399a22 | ||
|
|
7fd6e8118b | ||
|
|
5ba19ae91e | ||
|
|
2c6a90f78e | ||
|
|
4a64514d70 | ||
|
|
59105f87cb | ||
|
|
7924c2051a | ||
|
|
c279c189bc | ||
|
|
8845a7ab38 | ||
|
|
fd330b9914 | ||
|
|
0945517ebc | ||
|
|
72c221a0c8 | ||
|
|
64b139d1bc | ||
|
|
e69f114b45 | ||
|
|
d5e24a6daa | ||
|
|
2c1a6395e4 | ||
|
|
43cce1ba4a | ||
|
|
3cfe800a24 | ||
|
|
a8f96a04d1 | ||
|
|
b0b55b3741 | ||
|
|
16b3606572 | ||
|
|
0067efe9a3 | ||
|
|
1e0e1015c1 | ||
|
|
9ec138bee0 | ||
|
|
174dcddada | ||
|
|
06b8d1f521 |
@@ -13,6 +13,7 @@ LICENSE=
|
|||||||
# NEXT_PUBLIC_APP_URL=http://localhost:3000
|
# NEXT_PUBLIC_APP_URL=http://localhost:3000
|
||||||
|
|
||||||
NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
|
NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
|
||||||
|
NEXT_PUBLIC_API_V2_URL=http://localhost:5555/api/v2
|
||||||
|
|
||||||
# Configure NEXTAUTH_URL manually if needed, otherwise it will resolve to {NEXT_PUBLIC_WEBAPP_URL}/api/auth
|
# Configure NEXTAUTH_URL manually if needed, otherwise it will resolve to {NEXT_PUBLIC_WEBAPP_URL}/api/auth
|
||||||
# NEXTAUTH_URL=http://localhost:3000/api/auth
|
# NEXTAUTH_URL=http://localhost:3000/api/auth
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ on:
|
|||||||
# Uncomment below to allow specific version workflow run
|
# Uncomment below to allow specific version workflow run
|
||||||
# inputs:
|
# inputs:
|
||||||
# version:
|
# version:
|
||||||
# description: 'Version to build'
|
# description: 'Version to build'
|
||||||
# required: true
|
# required: true
|
||||||
|
|
||||||
# Leaving in example for releases. Initially we simply push to 'latest'
|
# Leaving in example for releases. Initially we simply push to 'latest'
|
||||||
@@ -37,6 +37,12 @@ jobs:
|
|||||||
|
|
||||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||||
steps:
|
steps:
|
||||||
|
- name: Free Disk Space (Ubuntu)
|
||||||
|
uses: jlumbroso/free-disk-space@main
|
||||||
|
with:
|
||||||
|
# Free about 4.5 GB, elminating our disk space issues
|
||||||
|
tool-cache: true
|
||||||
|
|
||||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it, uncomment below
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it, uncomment below
|
||||||
# - name: Checkout code at specified version
|
# - name: Checkout code at specified version
|
||||||
# uses: actions/checkout@v2
|
# uses: actions/checkout@v2
|
||||||
@@ -66,7 +72,7 @@ jobs:
|
|||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Docker meta
|
- name: Docker meta
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v5
|
uses: docker/metadata-action@v5
|
||||||
@@ -93,7 +99,7 @@ jobs:
|
|||||||
- name: Start database
|
- name: Start database
|
||||||
run: |
|
run: |
|
||||||
docker compose up -d database
|
docker compose up -d database
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -118,6 +124,7 @@ jobs:
|
|||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
build-args: |
|
build-args: |
|
||||||
NEXT_PUBLIC_WEBAPP_URL=${{ env.NEXT_PUBLIC_WEBAPP_URL }}
|
NEXT_PUBLIC_WEBAPP_URL=${{ env.NEXT_PUBLIC_WEBAPP_URL }}
|
||||||
|
NEXT_PUBLIC_API_V2_URL=${{ env.NEXT_PUBLIC_API_V2_URL }}
|
||||||
NEXT_PUBLIC_LICENSE_CONSENT=${{ env.NEXT_PUBLIC_LICENSE_CONSENT }}
|
NEXT_PUBLIC_LICENSE_CONSENT=${{ env.NEXT_PUBLIC_LICENSE_CONSENT }}
|
||||||
NEXT_PUBLIC_TELEMETRY_KEY=${{ env.NEXT_PUBLIC_TELEMETRY_KEY }}
|
NEXT_PUBLIC_TELEMETRY_KEY=${{ env.NEXT_PUBLIC_TELEMETRY_KEY }}
|
||||||
DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }}
|
DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }}
|
||||||
@@ -128,7 +135,7 @@ jobs:
|
|||||||
tags="${{ steps.meta.outputs.tags }}"
|
tags="${{ steps.meta.outputs.tags }}"
|
||||||
IFS=',' read -ra ADDR <<< "$tags" # Convert string to array using ',' as delimiter
|
IFS=',' read -ra ADDR <<< "$tags" # Convert string to array using ',' as delimiter
|
||||||
tag=${ADDR[0]} # Get the first tag
|
tag=${ADDR[0]} # Get the first tag
|
||||||
|
|
||||||
docker run --rm --network stack \
|
docker run --rm --network stack \
|
||||||
-p 3000:3000 \
|
-p 3000:3000 \
|
||||||
-e DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@database/${{ env.POSTGRES_DB }} \
|
-e DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@database/${{ env.POSTGRES_DB }} \
|
||||||
@@ -136,7 +143,7 @@ jobs:
|
|||||||
-e NEXTAUTH_SECRET=${{ env.NEXTAUTH_SECRET }} \
|
-e NEXTAUTH_SECRET=${{ env.NEXTAUTH_SECRET }} \
|
||||||
-e CALENDSO_ENCRYPTION_KEY=${{ env.CALENDSO_ENCRYPTION_KEY }} \
|
-e CALENDSO_ENCRYPTION_KEY=${{ env.CALENDSO_ENCRYPTION_KEY }} \
|
||||||
$tag &
|
$tag &
|
||||||
|
|
||||||
server_pid=$!
|
server_pid=$!
|
||||||
|
|
||||||
|
|
||||||
@@ -144,7 +151,7 @@ jobs:
|
|||||||
sleep 120
|
sleep 120
|
||||||
|
|
||||||
echo ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login
|
echo ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login
|
||||||
|
|
||||||
for i in {1..60}; do
|
for i in {1..60}; do
|
||||||
echo "Checking server health ($i/60)..."
|
echo "Checking server health ($i/60)..."
|
||||||
response=$(curl -o /dev/null -s -w "%{http_code}" ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login)
|
response=$(curl -o /dev/null -s -w "%{http_code}" ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login)
|
||||||
@@ -157,22 +164,13 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Server health check failed"
|
echo "Server health check failed"
|
||||||
kill $server_pid
|
kill $server_pid
|
||||||
exit 1
|
exit 1
|
||||||
env:
|
env:
|
||||||
NEXTAUTH_SECRET: 'EI4qqDpcfdvf4A+0aQEEx8JjHxHSy4uWiZw/F32K+pA='
|
NEXTAUTH_SECRET: 'EI4qqDpcfdvf4A+0aQEEx8JjHxHSy4uWiZw/F32K+pA='
|
||||||
CALENDSO_ENCRYPTION_KEY: '0zfLtY99wjeLnsM7qsa8xsT+Q0oSgnOL'
|
CALENDSO_ENCRYPTION_KEY: '0zfLtY99wjeLnsM7qsa8xsT+Q0oSgnOL'
|
||||||
|
|
||||||
|
|
||||||
# - name: Push image
|
|
||||||
# run: |
|
|
||||||
# tags="${{ steps.meta.outputs.tags }}"
|
|
||||||
# IFS=',' read -ra ADDR <<< "$tags" # Convert string to array using ',' as delimiter
|
|
||||||
# for tag in "${ADDR[@]}"; do
|
|
||||||
# docker push $tag
|
|
||||||
# done
|
|
||||||
|
|
||||||
- name: Push image
|
- name: Push image
|
||||||
id: docker_push
|
id: docker_push
|
||||||
@@ -180,21 +178,22 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
context: ./
|
context: ./
|
||||||
file: ./Dockerfile
|
file: ./Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
build-args: |
|
build-args: |
|
||||||
NEXT_PUBLIC_WEBAPP_URL=${{ env.NEXT_PUBLIC_WEBAPP_URL }}
|
NEXT_PUBLIC_WEBAPP_URL=${{ env.NEXT_PUBLIC_WEBAPP_URL }}
|
||||||
|
NEXT_PUBLIC_API_V2_URL=${{ env.NEXT_PUBLIC_API_V2_URL }}
|
||||||
NEXT_PUBLIC_LICENSE_CONSENT=${{ env.NEXT_PUBLIC_LICENSE_CONSENT }}
|
NEXT_PUBLIC_LICENSE_CONSENT=${{ env.NEXT_PUBLIC_LICENSE_CONSENT }}
|
||||||
NEXT_PUBLIC_TELEMETRY_KEY=${{ env.NEXT_PUBLIC_TELEMETRY_KEY }}
|
NEXT_PUBLIC_TELEMETRY_KEY=${{ env.NEXT_PUBLIC_TELEMETRY_KEY }}
|
||||||
DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }}
|
DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }}
|
||||||
DATABASE_DIRECT_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }}
|
DATABASE_DIRECT_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }}
|
||||||
if: ${{ !github.event.release.prerelease }}
|
if: ${{ !github.event.release.prerelease }}
|
||||||
|
|
||||||
- name: Image digest
|
- name: Image digest
|
||||||
run: echo ${{ steps.docker_build.outputs.digest }}
|
run: echo ${{ steps.docker_build.outputs.digest }}
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
run: |
|
run: |
|
||||||
docker compose down
|
docker compose down
|
||||||
|
|||||||
24
Dockerfile
24
Dockerfile
@@ -8,29 +8,34 @@ ARG DATABASE_URL
|
|||||||
ARG NEXTAUTH_SECRET=secret
|
ARG NEXTAUTH_SECRET=secret
|
||||||
ARG CALENDSO_ENCRYPTION_KEY=secret
|
ARG CALENDSO_ENCRYPTION_KEY=secret
|
||||||
ARG MAX_OLD_SPACE_SIZE=4096
|
ARG MAX_OLD_SPACE_SIZE=4096
|
||||||
|
ARG NEXT_PUBLIC_API_V2_URL
|
||||||
|
|
||||||
ENV NEXT_PUBLIC_WEBAPP_URL=http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER \
|
ENV NEXT_PUBLIC_WEBAPP_URL=http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER \
|
||||||
|
NEXT_PUBLIC_API_V2_URL=$NEXT_PUBLIC_API_V2_URL \
|
||||||
NEXT_PUBLIC_LICENSE_CONSENT=$NEXT_PUBLIC_LICENSE_CONSENT \
|
NEXT_PUBLIC_LICENSE_CONSENT=$NEXT_PUBLIC_LICENSE_CONSENT \
|
||||||
CALCOM_TELEMETRY_DISABLED=$CALCOM_TELEMETRY_DISABLED \
|
CALCOM_TELEMETRY_DISABLED=$CALCOM_TELEMETRY_DISABLED \
|
||||||
DATABASE_URL=$DATABASE_URL \
|
DATABASE_URL=$DATABASE_URL \
|
||||||
DATABASE_DIRECT_URL=$DATABASE_URL \
|
DATABASE_DIRECT_URL=$DATABASE_URL \
|
||||||
NEXTAUTH_SECRET=${NEXTAUTH_SECRET} \
|
NEXTAUTH_SECRET=${NEXTAUTH_SECRET} \
|
||||||
CALENDSO_ENCRYPTION_KEY=${CALENDSO_ENCRYPTION_KEY} \
|
CALENDSO_ENCRYPTION_KEY=${CALENDSO_ENCRYPTION_KEY} \
|
||||||
NODE_OPTIONS=--max-old-space-size=${MAX_OLD_SPACE_SIZE}
|
NODE_OPTIONS=--max-old-space-size=${MAX_OLD_SPACE_SIZE} \
|
||||||
|
BUILD_STANDALONE=true
|
||||||
|
|
||||||
COPY calcom/package.json calcom/yarn.lock calcom/.yarnrc.yml calcom/playwright.config.ts calcom/turbo.json calcom/git-init.sh calcom/git-setup.sh ./
|
COPY calcom/package.json calcom/yarn.lock calcom/.yarnrc.yml calcom/playwright.config.ts calcom/turbo.json calcom/git-init.sh calcom/git-setup.sh ./
|
||||||
COPY calcom/.yarn ./.yarn
|
COPY calcom/.yarn ./.yarn
|
||||||
COPY calcom/apps/web ./apps/web
|
COPY calcom/apps/web ./apps/web
|
||||||
|
COPY calcom/apps/api/v2 ./apps/api/v2
|
||||||
COPY calcom/packages ./packages
|
COPY calcom/packages ./packages
|
||||||
COPY calcom/tests ./tests
|
COPY calcom/tests ./tests
|
||||||
|
|
||||||
RUN yarn config set httpTimeout 1200000 && \
|
RUN yarn config set httpTimeout 1200000
|
||||||
npx turbo prune --scope=@calcom/web --docker && \
|
RUN npx turbo prune --scope=@calcom/web --docker
|
||||||
yarn install && \
|
RUN yarn install
|
||||||
yarn db-deploy && \
|
RUN yarn db-deploy
|
||||||
yarn --cwd packages/prisma seed-app-store
|
RUN yarn --cwd packages/prisma seed-app-store
|
||||||
|
# Build and make embed servable from web/public/embed folder
|
||||||
RUN yarn turbo run build --filter=@calcom/web
|
RUN yarn --cwd packages/embeds/embed-core workspace @calcom/embed-core run build
|
||||||
|
RUN yarn --cwd apps/web workspace @calcom/web run build
|
||||||
|
|
||||||
# RUN yarn plugin import workspace-tools && \
|
# RUN yarn plugin import workspace-tools && \
|
||||||
# yarn workspaces focus --all --production
|
# yarn workspaces focus --all --production
|
||||||
@@ -43,8 +48,9 @@ ARG NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
|
|||||||
|
|
||||||
ENV NODE_ENV production
|
ENV NODE_ENV production
|
||||||
|
|
||||||
COPY calcom/package.json calcom/.yarnrc.yml calcom/yarn.lock calcom/turbo.json ./
|
COPY calcom/package.json calcom/.yarnrc.yml calcom/turbo.json ./
|
||||||
COPY calcom/.yarn ./.yarn
|
COPY calcom/.yarn ./.yarn
|
||||||
|
COPY --from=builder /calcom/yarn.lock ./yarn.lock
|
||||||
COPY --from=builder /calcom/node_modules ./node_modules
|
COPY --from=builder /calcom/node_modules ./node_modules
|
||||||
COPY --from=builder /calcom/packages ./packages
|
COPY --from=builder /calcom/packages ./packages
|
||||||
COPY --from=builder /calcom/apps/web ./apps/web
|
COPY --from=builder /calcom/apps/web ./apps/web
|
||||||
|
|||||||
2
calcom
2
calcom
Submodule calcom updated: 9dd2dbff19...17f537774c
@@ -27,6 +27,7 @@ services:
|
|||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
NEXT_PUBLIC_WEBAPP_URL: ${NEXT_PUBLIC_WEBAPP_URL}
|
NEXT_PUBLIC_WEBAPP_URL: ${NEXT_PUBLIC_WEBAPP_URL}
|
||||||
|
NEXT_PUBLIC_API_V2_URL: ${NEXT_PUBLIC_API_V2_URL}
|
||||||
NEXT_PUBLIC_LICENSE_CONSENT: ${NEXT_PUBLIC_LICENSE_CONSENT}
|
NEXT_PUBLIC_LICENSE_CONSENT: ${NEXT_PUBLIC_LICENSE_CONSENT}
|
||||||
CALCOM_TELEMETRY_DISABLED: ${CALCOM_TELEMETRY_DISABLED}
|
CALCOM_TELEMETRY_DISABLED: ${CALCOM_TELEMETRY_DISABLED}
|
||||||
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
||||||
|
|||||||
Reference in New Issue
Block a user