diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b6f6c6fdf58..0b2f327b171 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -100,6 +100,21 @@ jobs: - name: build docker image run: sudo docker build -f ./APIReference/Dockerfile . + docker-build-docs: + runs-on: ubuntu-latest + env: + CI_PIPELINE_ID: ${{github.run_number}} + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Preinstall + run: npm run prerun + + # build image for accounts service + - name: build docker image + run: sudo docker build -f ./Docs/Dockerfile . + docker-build-otel-collector: runs-on: ubuntu-latest diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index ac91b14213f..78bed2e2b71 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -105,6 +105,18 @@ jobs: - run: cd Common && npm install - run: cd APIReference && npm install && npm run compile && npm run dep-check + compile-docs-reference: + runs-on: ubuntu-latest + env: + CI_PIPELINE_ID: ${{github.run_number}} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: 18.3.0 + - run: cd Common && npm install + - run: cd Docs && npm install && npm run compile && npm run dep-check + compile-copilot: runs-on: ubuntu-latest env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b8738af6762..8b45f6b0252 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1139,8 +1139,81 @@ jobs: GIT_SHA=${{ github.sha }} APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} + docs-docker-image-deploy: + needs: generate-build-number + strategy: + fail-fast: false + runs-on: ubuntu-latest + steps: + + - name: Docker Meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + oneuptime/docs + ghcr.io/oneuptime/docs + tags: | + type=raw,value=release,enable=true + type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true + + + - uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - uses: actions/setup-node@v2 + with: + node-version: 18.3.0 + + # - name: Setup Git LFS + # run: git lfs install + + # # Cannot do this, no space on the gitHub standard runner. We need to use the large runner which is selfhosted + # - name: Download the Model from Hugging Face + # run: mkdir -p ./LLM/Models && cd ./LLM/Models && git clone https://${{ secrets.HUGGING_FACE_USERNAME }}:${{ secrets.HUGGING_FACE_PASSWORD }}@huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Generate Dockerfile from Dockerfile.tpl + run: npm run prerun + + # Build and deploy nginx. + + - name: Login to Docker Hub + uses: docker/login-action@v2.2.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2.2.0 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v4 + with: + file: ./Docs/Dockerfile + context: . + # arm64 is not supported by the base image of the LLM + platforms: linux/amd64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: | + GIT_SHA=${{ github.sha }} + APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} + + worker-docker-image-deploy: needs: generate-build-number strategy: @@ -1369,7 +1442,7 @@ jobs: test-e2e-release-saas: runs-on: ubuntu-latest - needs: [copilot-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy] + needs: [copilot-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy] env: CI_PIPELINE_ID: ${{github.run_number}} steps: @@ -1422,7 +1495,7 @@ jobs: test-e2e-release-self-hosted: runs-on: ubuntu-latest # After all the jobs runs - needs: [copilot-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy] + needs: [copilot-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy] env: CI_PIPELINE_ID: ${{github.run_number}} steps: diff --git a/.github/workflows/test-release.yaml b/.github/workflows/test-release.yaml index 131155cfb2a..bb4efd2a59e 100644 --- a/.github/workflows/test-release.yaml +++ b/.github/workflows/test-release.yaml @@ -1277,8 +1277,70 @@ jobs: APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} + docs-docker-image-deploy: + needs: generate-build-number + runs-on: ubuntu-latest + steps: + - name: Docker Meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + oneuptime/docs + ghcr.io/oneuptime/docs + tags: | + type=raw,value=test,enable=true + type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true + - uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - uses: actions/setup-node@v2 + with: + node-version: 18.3.0 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Generate Dockerfile from Dockerfile.tpl + run: npm run prerun + + # Build and deploy accounts. + + - name: Login to Docker Hub + uses: docker/login-action@v2.2.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2.2.0 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v4 + with: + file: ./Docs/Dockerfile + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: | + GIT_SHA=${{ github.sha }} + APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} + + + + test-helm-chart: runs-on: ubuntu-latest needs: [llm-docker-image-deploy, copilot-docker-image-deploy, workflow-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, api-reference-docker-image-deploy, test-server-docker-image-deploy, test-docker-image-deploy, ingestor-docker-image-deploy, probe-docker-image-deploy, haraka-docker-image-deploy, dashboard-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, accounts-docker-image-deploy, otel-collector-docker-image-deploy, status-page-docker-image-deploy, nginx-docker-image-deploy, e2e-docker-image-deploy] diff --git a/docker-compose.base.yml b/docker-compose.base.yml index 0550bd6f8fd..347734bb284 100644 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -38,6 +38,7 @@ x-common-variables: &common-variables SERVER_HOME_HOSTNAME: home SERVER_WORKFLOW_HOSTNAME: workflow SERVER_API_REFERENCE_HOSTNAME: api-reference + SERVER_DOCS_HOSTNAME: docs #Ports. Usually they don't need to change. APP_PORT: ${APP_PORT} @@ -53,6 +54,7 @@ x-common-variables: &common-variables WORKER_PORT: ${WORKER_PORT} WORKFLOW_PORT: ${WORKFLOW_PORT} API_REFERENCE_PORT: ${API_REFERENCE_PORT} + DOCS_PORT: ${DOCS_PORT} OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT: ${OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT} OPENTELEMETRY_EXPORTER_OTLP_HEADERS: ${OPENTELEMETRY_EXPORTER_OTLP_HEADERS} @@ -306,6 +308,18 @@ services: options: max-size: "1000m" + docs: + networks: + - oneuptime + restart: always + environment: + <<: *common-server-variables + PORT: ${DOCS_PORT} + logging: + driver: "local" + options: + max-size: "1000m" + api-reference: networks: - oneuptime