From ee86f1efc38de7c95bb393bd05f073ebd9cdd9ba Mon Sep 17 00:00:00 2001 From: Lars von BLS media Date: Tue, 10 Sep 2024 11:13:21 +0000 Subject: [PATCH] =?UTF-8?q?.github/workflows/docker-build-push-dockerhub.y?= =?UTF-8?q?ml=20gel=C3=B6scht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflows/docker-build-push-dockerhub.yml | 199 ------------------ 1 file changed, 199 deletions(-) delete mode 100644 .github/workflows/docker-build-push-dockerhub.yml diff --git a/.github/workflows/docker-build-push-dockerhub.yml b/.github/workflows/docker-build-push-dockerhub.yml deleted file mode 100644 index c467e69..0000000 --- a/.github/workflows/docker-build-push-dockerhub.yml +++ /dev/null @@ -1,199 +0,0 @@ -# This is a basic workflow to help you get started with Actions - -name: Build and push image to DockerHub - -# Controls when the workflow will run -on: - push: - branches: - - 'main' - tags: - - 'v*' - # update on run of Update Calendso nightly submodule update - workflow_run: - workflows: ["Update Calendso"] - branches: [main] - types: - - completed - # Allow running workflow manually from the Actions tab - 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' -# on: - # release: - # types: [ created ] - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "build" - build: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed as part of the job - 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 - # - name: Checkout code at specified version - # uses: actions/checkout@v2 - # with: - # ref: ${{ github.event.inputs.version }} - - - name: checkout - uses: actions/checkout@v4 - - - name: Git submodule update - run: | - git submodule update --init - - - name: Log in to the Docker Hub registry - uses: docker/login-action@v3 - with: - # Username used to log against the Docker registry - username: ${{ secrets.DOCKER_HUB_USERNAME }} - # Password or personal access token used to log against the Docker registry - password: ${{ secrets.DOCKER_HUB_TOKEN }} - # Log out from the Docker registry at the end of a job - logout: true # optional, default is true - - - name: Log in to the Github Container registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Docker meta - id: meta - uses: docker/metadata-action@v5 - with: - images: | - docker.io/calendso/calendso - docker.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 }} - - - name: Copy env - run: | - grep -o '^[^#]*' .env.example > .env - cat .env >> $GITHUB_ENV - echo "DATABASE_HOST=localhost:5432" >> $GITHUB_ENV - eval $(sed -e '/^#/d' -e 's/^/export /' -e 's/$/;/' .env) ; - - # Temporarily disable ARM build due to runner performance issues - # - name: Set up QEMU - # uses: docker/setup-qemu-action@v2 - - - name: Start database - run: | - docker compose up -d database - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - with: - driver-opts: | - network=container:database - buildkitd-flags: | - --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host -# config-inline: | -# [worker.oci] -# max-parallelism = 1 - - - name: Build image - id: docker_build - uses: docker/build-push-action@v5 - with: - context: ./ - file: ./Dockerfile - load: true # Load the image into the Docker daemon - push: false # Do not push the image at this stage - 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_API_V2_URL=${{ env.NEXT_PUBLIC_API_V2_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 }} - DATABASE_DIRECT_URL=postgresql://${{ env.POSTGRES_USER }}:${{ env.POSTGRES_PASSWORD }}@${{ env.DATABASE_HOST }}/${{ env.POSTGRES_DB }} - - - name: Test runtime - 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 DATABASE_DIRECT_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 - id: docker_push - uses: docker/build-push-action@v5 - 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_API_V2_URL=${{ env.NEXT_PUBLIC_API_V2_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 }} - DATABASE_DIRECT_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 - run: | - docker compose down