Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
15f90cadfa |
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@@ -1,7 +0,0 @@
|
|||||||
version: 2
|
|
||||||
updates:
|
|
||||||
# Maintain dependencies for GitHub Actions
|
|
||||||
- package-ecosystem: "github-actions"
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
60
.github/workflows/create-release.yaml
vendored
60
.github/workflows/create-release.yaml
vendored
@@ -1,60 +0,0 @@
|
|||||||
name: "Create Release"
|
|
||||||
|
|
||||||
on: # yamllint disable-line rule:truthy
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
RELEASE_TAG:
|
|
||||||
description: 'v{Major}.{Minor}.{Patch}'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
release:
|
|
||||||
name: "Release"
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- name: Checkout source
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.ACTIONS_ACCESS_TOKEN }}
|
|
||||||
submodules: true
|
|
||||||
|
|
||||||
- name: Create branch and tag submodule
|
|
||||||
run: |
|
|
||||||
git config user.email "actions@github.com"
|
|
||||||
git config user.name "actions-user"
|
|
||||||
git submodule update --init --remote
|
|
||||||
git checkout -b 'release-${{ inputs.RELEASE_TAG }}'
|
|
||||||
(cd calcom && git fetch --tags origin && git checkout 'refs/tags/${{ inputs.RELEASE_TAG }}')
|
|
||||||
git add calcom
|
|
||||||
git commit -m "tag version Cal.com version ${{ inputs.RELEASE_TAG }}"
|
|
||||||
git push origin 'release-${{ inputs.RELEASE_TAG }}'
|
|
||||||
|
|
||||||
# note: instead of secrets.GITHUB_TOKEN here, we need to use a PAT
|
|
||||||
# so that the release creation triggers the image build workflow
|
|
||||||
- name: "Create release"
|
|
||||||
uses: "actions/github-script@v6"
|
|
||||||
with:
|
|
||||||
github-token: "${{ secrets.ACTIONS_ACCESS_TOKEN }}"
|
|
||||||
script: |
|
|
||||||
const isPreRelease = '${{ inputs.RELEASE_TAG }}'.includes('-rc');
|
|
||||||
try {
|
|
||||||
const response = await github.rest.repos.createRelease({
|
|
||||||
draft: false,
|
|
||||||
generate_release_notes: true,
|
|
||||||
body: 'For Cal.com release details, see: https://github.com/calcom/cal.com/releases/tag/${{ inputs.RELEASE_TAG }}',
|
|
||||||
name: '${{ inputs.RELEASE_TAG }}',
|
|
||||||
target_commitish: 'release-${{ inputs.RELEASE_TAG }}',
|
|
||||||
owner: context.repo.owner,
|
|
||||||
prerelease: isPreRelease,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
tag_name: '${{ inputs.RELEASE_TAG }}',
|
|
||||||
});
|
|
||||||
|
|
||||||
core.exportVariable('RELEASE_ID', response.data.id);
|
|
||||||
core.exportVariable('RELEASE_UPLOAD_URL', response.data.upload_url);
|
|
||||||
} catch (error) {
|
|
||||||
core.setFailed(error.message);
|
|
||||||
}
|
|
||||||
112
.github/workflows/docker-build-push-dockerhub.yml
vendored
112
.github/workflows/docker-build-push-dockerhub.yml
vendored
@@ -17,17 +17,15 @@ on:
|
|||||||
- completed
|
- completed
|
||||||
# Allow running workflow manually from the Actions tab
|
# Allow running workflow manually from the Actions tab
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
# Uncomment below to allow specific version workflow run
|
|
||||||
# inputs:
|
|
||||||
# version:
|
|
||||||
# description: 'Version to build'
|
|
||||||
# required: true
|
|
||||||
|
|
||||||
# Leaving in example for releases. Initially we simply push to 'latest'
|
# Leaving in example for releases. Initially we simply push to 'latest'
|
||||||
# on:
|
# on:
|
||||||
# release:
|
# release:
|
||||||
# types: [ created ]
|
# types: [ created ]
|
||||||
|
|
||||||
|
# # Allows you to run this workflow manually from the Actions tab
|
||||||
|
# workflow_dispatch:
|
||||||
|
|
||||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
jobs:
|
jobs:
|
||||||
# This workflow contains a single job called "build"
|
# This workflow contains a single job called "build"
|
||||||
@@ -37,21 +35,16 @@ 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:
|
||||||
# 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
|
||||||
# - name: Checkout code at specified version
|
|
||||||
# uses: actions/checkout@v2
|
|
||||||
# with:
|
|
||||||
# ref: ${{ github.event.inputs.version }}
|
|
||||||
|
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Git submodule update
|
- name: Git submodule update
|
||||||
run: |
|
run: |
|
||||||
git submodule update --init
|
git submodule update --init
|
||||||
|
|
||||||
- name: Log in to the Docker Hub registry
|
- name: Log in to the Docker Hub registry
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v1.10.0
|
||||||
with:
|
with:
|
||||||
# Username used to log against the Docker registry
|
# Username used to log against the Docker registry
|
||||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||||
@@ -61,7 +54,7 @@ jobs:
|
|||||||
logout: true # optional, default is true
|
logout: true # optional, default is true
|
||||||
|
|
||||||
- name: Log in to the Github Container registry
|
- name: Log in to the Github Container registry
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v1.10.0
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
@@ -75,10 +68,6 @@ jobs:
|
|||||||
docker.io/calendso/calendso
|
docker.io/calendso/calendso
|
||||||
docker.io/calcom/cal.com
|
docker.io/calcom/cal.com
|
||||||
ghcr.io/calcom/cal.com
|
ghcr.io/calcom/cal.com
|
||||||
# Add flavor latest only on full releases, not on pre-releases
|
|
||||||
flavor: |
|
|
||||||
latest=${{ !github.event.release.prerelease }}
|
|
||||||
prerelease=${{ github.event.release.prerelease }}
|
|
||||||
|
|
||||||
- name: Copy env
|
- name: Copy env
|
||||||
run: |
|
run: |
|
||||||
@@ -88,8 +77,8 @@ jobs:
|
|||||||
eval $(sed -e '/^#/d' -e 's/^/export /' -e 's/$/;/' .env) ;
|
eval $(sed -e '/^#/d' -e 's/^/export /' -e 's/$/;/' .env) ;
|
||||||
|
|
||||||
# Temporarily disable ARM build due to runner performance issues
|
# Temporarily disable ARM build due to runner performance issues
|
||||||
# - name: Set up QEMU
|
# - name: Set up QEMU
|
||||||
# uses: docker/setup-qemu-action@v2
|
# uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
- name: Start database
|
- name: Start database
|
||||||
run: |
|
run: |
|
||||||
@@ -102,18 +91,14 @@ jobs:
|
|||||||
network=container:database
|
network=container:database
|
||||||
buildkitd-flags: |
|
buildkitd-flags: |
|
||||||
--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host
|
--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host
|
||||||
# config-inline: |
|
|
||||||
# [worker.oci]
|
|
||||||
# max-parallelism = 1
|
|
||||||
|
|
||||||
- name: Build image
|
- name: Build and push image
|
||||||
id: docker_build
|
id: docker_build
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v3
|
||||||
with:
|
with:
|
||||||
context: ./
|
context: ./
|
||||||
file: ./Dockerfile
|
file: ./Dockerfile
|
||||||
load: true # Load the image into the Docker daemon
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
push: false # Do not push the image at this stage
|
|
||||||
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 }}
|
||||||
@@ -123,76 +108,13 @@ jobs:
|
|||||||
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 }}
|
||||||
|
|
||||||
- name: Test runtime
|
# - name: Build with docker compose
|
||||||
run: |
|
|
||||||
tags="${{ steps.meta.outputs.tags }}"
|
|
||||||
IFS=',' read -ra ADDR <<< "$tags" # Convert string to array using ',' as delimiter
|
|
||||||
tag=${ADDR[0]} # Get the first tag
|
|
||||||
|
|
||||||
docker run --rm --network stack \
|
|
||||||
-p 3000:3000 \
|
|
||||||
-e DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@database/${{ env.POSTGRES_DB }} \
|
|
||||||
-e NEXTAUTH_SECRET=${{ env.NEXTAUTH_SECRET }} \
|
|
||||||
-e CALENDSO_ENCRYPTION_KEY=${{ env.CALENDSO_ENCRYPTION_KEY }} \
|
|
||||||
$tag &
|
|
||||||
|
|
||||||
server_pid=$!
|
|
||||||
|
|
||||||
|
|
||||||
echo "Waiting for the server to start..."
|
|
||||||
sleep 120
|
|
||||||
|
|
||||||
echo ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login
|
|
||||||
|
|
||||||
for i in {1..60}; do
|
|
||||||
echo "Checking server health ($i/60)..."
|
|
||||||
response=$(curl -o /dev/null -s -w "%{http_code}" ${{ env.NEXT_PUBLIC_WEBAPP_URL }}/auth/login)
|
|
||||||
echo "HTTP Status Code: $response"
|
|
||||||
if [[ "$response" == "200" ]] || [[ "$response" == "307" ]]; then
|
|
||||||
echo "Server is healthy"
|
|
||||||
# Now, shutdown the server
|
|
||||||
kill $server_pid
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Server health check failed"
|
|
||||||
kill $server_pid
|
|
||||||
exit 1
|
|
||||||
env:
|
|
||||||
NEXTAUTH_SECRET: 'EI4qqDpcfdvf4A+0aQEEx8JjHxHSy4uWiZw/F32K+pA='
|
|
||||||
CALENDSO_ENCRYPTION_KEY: '0zfLtY99wjeLnsM7qsa8xsT+Q0oSgnOL'
|
|
||||||
|
|
||||||
|
|
||||||
# - name: Push image
|
|
||||||
# run: |
|
# run: |
|
||||||
# tags="${{ steps.meta.outputs.tags }}"
|
# DOCKER_BUILDKIT=0 docker compose build --build-arg DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }} calcom
|
||||||
# IFS=',' read -ra ADDR <<< "$tags" # Convert string to array using ',' as delimiter
|
|
||||||
# for tag in "${ADDR[@]}"; do
|
|
||||||
# docker push $tag
|
|
||||||
# done
|
|
||||||
|
|
||||||
- name: Push image
|
|
||||||
id: docker_push
|
|
||||||
uses: docker/build-push-action@v4
|
|
||||||
with:
|
|
||||||
context: ./
|
|
||||||
file: ./Dockerfile
|
|
||||||
push: true
|
|
||||||
platforms: linux/amd64
|
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
|
||||||
build-args: |
|
|
||||||
NEXT_PUBLIC_WEBAPP_URL=${{ env.NEXT_PUBLIC_WEBAPP_URL }}
|
|
||||||
NEXT_PUBLIC_LICENSE_CONSENT=${{ env.NEXT_PUBLIC_LICENSE_CONSENT }}
|
|
||||||
NEXT_PUBLIC_TELEMETRY_KEY=${{ env.NEXT_PUBLIC_TELEMETRY_KEY }}
|
|
||||||
DATABASE_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }}
|
|
||||||
if: ${{ !github.event.release.prerelease }}
|
|
||||||
|
|
||||||
- name: Image digest
|
|
||||||
run: echo ${{ steps.docker_build.outputs.digest }}
|
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
run: |
|
run: |
|
||||||
docker compose down
|
docker compose down
|
||||||
|
|
||||||
|
- name: Image digest
|
||||||
|
run: echo ${{ steps.docker_build.outputs.digest }}
|
||||||
|
|||||||
2
.github/workflows/update-submodules.yml
vendored
2
.github/workflows/update-submodules.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Git submodule update
|
- name: Git submodule update
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ COPY calcom/package.json calcom/yarn.lock calcom/.yarnrc.yml calcom/playwright.c
|
|||||||
COPY calcom/.yarn ./.yarn
|
COPY calcom/.yarn ./.yarn
|
||||||
COPY calcom/apps/web ./apps/web
|
COPY calcom/apps/web ./apps/web
|
||||||
COPY calcom/packages ./packages
|
COPY calcom/packages ./packages
|
||||||
COPY calcom/tests ./tests
|
|
||||||
|
|
||||||
RUN yarn config set httpTimeout 1200000 && \
|
RUN yarn config set httpTimeout 1200000 && \
|
||||||
npx turbo prune --scope=@calcom/web --docker && \
|
npx turbo prune --scope=@calcom/web --docker && \
|
||||||
@@ -68,8 +67,4 @@ ENV NEXT_PUBLIC_WEBAPP_URL=$NEXT_PUBLIC_WEBAPP_URL \
|
|||||||
|
|
||||||
ENV NODE_ENV production
|
ENV NODE_ENV production
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
HEALTHCHECK --interval=30s --timeout=30s --retries=5 \
|
|
||||||
CMD wget --spider http://localhost:3000 || exit 1
|
|
||||||
|
|
||||||
CMD ["/calcom/scripts/start.sh"]
|
CMD ["/calcom/scripts/start.sh"]
|
||||||
2
calcom
2
calcom
Submodule calcom updated: fac47544d1...3e53aa13eb
Reference in New Issue
Block a user