diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 0e98703..74af86d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,4 +1,4 @@ -name: CI Build +name: Prod Env Latest Build on: pull_request: @@ -41,7 +41,13 @@ jobs: run: | mkdir -p tmp_extracted tar -xzf ./wire-docs.tar.gz -C tmp_extracted + + # removing old objects from the bucket to ensure, we don't keep objects at old path + aws s3 rm s3://${{ secrets.BUCKET }}/latest --recursive aws s3 sync tmp_extracted/latest s3://${{ secrets.BUCKET }}/latest - aws s3 sync tmp_extracted/site s3://${{ secrets.BUCKET }}/site + + # will be removed in the next commit + aws s3 rm s3://${{ secrets.BUCKET }}/site --recursive + aws s3 cp tmp_extracted/versions.json s3://${{ secrets.BUCKET }}/versions.json rm -rf tmp_extracted diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 7f9d46c..214c99c 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,4 +1,4 @@ -name: CI Build +name: Test Env Latest Build on: pull_request: @@ -42,13 +42,11 @@ jobs: mkdir -p tmp_extracted tar -xzf ./wire-docs.tar.gz -C tmp_extracted + # removing old objects from the bucket to ensure, we don't keep objects at old path aws s3 rm s3://${{ secrets.DEV_BUCKET }}/latest --recursive aws s3 sync tmp_extracted/latest s3://${{ secrets.DEV_BUCKET }}/latest - aws s3 rm s3://${{ secrets.DEV_BUCKET }}/site --recursive - aws s3 sync tmp_extracted/site s3://${{ secrets.DEV_BUCKET }}/site - aws s3 cp tmp_extracted/versions.json s3://${{ secrets.DEV_BUCKET }}/versions.json rm -rf tmp_extracted diff --git a/Makefile b/Makefile index dd2883d..0102dbc 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,6 @@ check-deps: # fetch all the tags from the remote .PHONY: prepare prepare: check-deps - @git fetch --tags @bash build/prepare.sh # Run the all versions of the documentation diff --git a/build/build_versions.sh b/build/build_versions.sh index 81bca08..96baaa1 100644 --- a/build/build_versions.sh +++ b/build/build_versions.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -ex +set -e mike="pipenv run mike" CURRENT=$(git branch --show-current) @@ -10,8 +10,26 @@ git config --local user.name "Wire Docs" git config --local user.email "wire-docs-author@wire.com" git config --local submodule.recurse false +# this will check if there are warnings in mkdocs build, if any it will exit. +# It will be useful to find if internal referencing is broken +validate_output() { + local RED='\033[0;31m' + local output="$1" + # to get building logs + echo "$output" + # ignoring changelog.md as it is talking about past changes + remaining_warnings=$(echo "$output" | grep -i "WARNING" | grep -v "Doc file 'changelog/changelog.md' contains a link" | awk '{$1=$1};1') + + if [ -n "$remaining_warnings" ]; then + echo -e "${RED}Errors found in the output:" + echo "$remaining_warnings" + exit 1 + fi +} + # checking if it is building from a branch if [ -n "$CURRENT" ]; then + # if building locally, the local tag would be CURRENT_TAG CURRENT_TAG="$CURRENT" # useful for local users to see their diffs with each mike deploy @@ -31,22 +49,14 @@ else if [[ "${GITHUB_REF}" == refs/tags/* ]]; then # For a tag, strip the "refs/tags/" prefix. CURRENT_TAG="${GITHUB_REF#refs/tags/}" - # creating a tag when releasing a tag - git tag -f $CURRENT_TAG || true elif [[ "${GITHUB_REF}" == refs/pull/* ]]; then - # For a pull request, remove "refs/pull/" then replace "/" with "-" to get "11-merge" - pr_part="${GITHUB_REF#refs/pull/}"s - CURRENT_TAG="${pr_part//\//-}" + # we build latest everytime there is PR + CURRENT_TAG="latest" fi fi - fi -# always build the latest tag -git tag -f latest || true - -# Get all tags -TAGS=$(git tag) +git tag -f $CURRENT_TAG || true # Fetch the existing tags and their commits from mike declare -A existing_tags @@ -54,33 +64,31 @@ while read -r tag commit; do existing_tags[$tag]=$commit done < <($mike list | awk -F '[][]' '{print $1, $2}') -# Iterate over git tags -git show-ref --tags | while read -r commit tag; do - TAG=${tag#refs/tags/} - git checkout $TAG +commit=$(git show-ref "refs/tags/${CURRENT_TAG}" | awk '{print $1}') +git checkout ${CURRENT_TAG} - # pull the submodule - git submodule update --init --depth 1 wire-server +# pull the submodule +git submodule update --init --depth 1 wire-server - # Check if tag exists in mike - if [ -n "${existing_tags[$TAG]}" ]; then - existing_commit="${existing_tags[$TAG]}" - - if [ "$commit" != "$existing_commit" ]; then - echo "Tag $TAG exists but with a different commit ($existing_commit). Updating..." - $mike delete "$TAG" - $mike deploy --update-aliases "$TAG" "$commit" - else - echo "Tag $TAG already exists with the same commit ($commit). Skipping deployment." - fi +# Check if tag exists in mike +if [ -n "${existing_tags[$CURRENT_TAG]}" ]; then + existing_commit="${existing_tags[$CURRENT_TAG]}" + if [ "$commit" != "$existing_commit" ]; then + echo "Tag $CURRENT_TAG exists but with a different commit ($existing_commit). Updating..." + $mike delete "$CURRENT_TAG" + output=$($mike deploy --update-aliases "$CURRENT_TAG" "$commit" 2>&1) + validate_output "$output" else - echo "Tag $TAG does not exist. Deploying..." - $mike deploy --update-aliases "$TAG" "$commit" + echo "Tag $CURRENT_TAG already exists with the same commit ($commit). Skipping deployment." fi +else + echo "Tag $CURRENT_TAG does not exist. Deploying..." + output=$($mike deploy --update-aliases "$CURRENT_TAG" "$commit" 2>&1) + validate_output "$output" + fi - # deinit the submodule to avoid issues with the next iteration - git submodule deinit -f wire-server -done +# deinit the submodule to avoid issues with the next iteration +git submodule deinit -f wire-server -# Set the default tag and create an alias to latest -$mike set-default latest +# Set the default tag and create an alias to $CURRENT_TAG +$mike set-default $CURRENT_TAG diff --git a/build/prepare.sh b/build/prepare.sh index da67804..2744291 100644 --- a/build/prepare.sh +++ b/build/prepare.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -xeuo pipefail +set -euo pipefail # Get the current directory (i.e. the original working directory) ORIGINAL_DIR=$(pwd) @@ -47,6 +47,7 @@ if [ -d "$TEMP_DIR/.git" ]; then else echo "Cloning repository to ${TEMP_DIR}" git clone "${ORIGINAL_DIR}" "${TEMP_DIR}" + git branch --show-current > "${TEMP_DIR}/.current_branch" fi echo "Syncing all the other files changes from ${ORIGINAL_DIR}/ to ${TEMP_DIR}, to have uncommited changes, if any" diff --git a/mkdocs.yml b/mkdocs.yml index 40c0965..62ea3ce 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -5,7 +5,7 @@ repo_url: https://github.com/wireapp/wire-docs edit_uri: edit/main/src/ site_author: Wire Authors site_description: "Wire Documentation" -use_directory_urls: true +use_directory_urls: false nav: - Home: README.md - Installation: @@ -48,7 +48,6 @@ nav: - Single Sign-On and User Provisioning: understand/single-sign-on/README.md - Audio/video calling, restund servers (TURN/STUN): understand/restund.md - Conference Calling 2.0 (aka SFT): understand/sft.md - - Federated Conference Calling: understand/sft#federated-conference-calling - Minio: understand/minio.md - Helm: understand/helm.md - Federation: understand/federation/README.md @@ -98,7 +97,6 @@ nav: - Legal hold: developer/reference/team/legalhold.md - User Activation: developer/reference/user/activation.md - Connection: developer/reference/user/connection.md - - Connection backend internals: developer/reference/user/connection/#connection-backend-internals - User Registration: developer/reference/user/registration.md - User Rich info: developer/reference/user/rich-info.md - Security Responses: diff --git a/src/SUMMARY.md b/src/SUMMARY.md deleted file mode 100644 index 4435926..0000000 --- a/src/SUMMARY.md +++ /dev/null @@ -1,102 +0,0 @@ -# Summary - -* [Wire-docs](README.md) -* [Installation](how-to/install/README.md) - * [How to plan an installation](how-to/install/planning.md) - * [Version requirements](how-to/install/version-requirements.md) - * [Dependencies on operator’s machine](how-to/install/dependencies.md) - * [How to install kubernetes (Demo)](how-to/install/kubernetes.md) - * [How to install wire-server using Helm (Demo)](how-to/install/helm.md) - * [Introduction](how-to/install/prod-intro.md) - * [How to install kubernetes and databases](how-to/install/ansible-VMs.md) - * [How to configure AWS services](how-to/install/aws-prod.md) - * [How to install wire-server using Helm](how-to/install/helm-prod.md) - * [Infrastructure configuration](how-to/install/infrastructure-configuration.md) - * [How to monitor wire-server](how-to/install/monitoring.md) - * [How to see centralized logs for wire-server](how-to/install/logging.md) - * [Ingress-controller (getting traffic in)](how-to/install/ingress.md) - * [Web app settings](how-to/install/web-app-settings.md) - * [Installing Conference Calling 2.0 (aka SFT)](how-to/install/sft.md) - * [Installing Restund](how-to/install/restund.md) - * [Configure TLS ciphers](how-to/install/tls.md) - * [Managing authentication with ansible](how-to/install/ansible-authentication.md) - * [Using tinc](how-to/install/ansible-tinc.md) - * [Troubleshooting during installation](how-to/install/troubleshooting.md) - * [Verifying your installation](how-to/install/post-install.md) -* [Administration](how-to/administrate/README.md) - * [kubernetes](how-to/administrate/kubernetes/README.md) - * [Backup and disaster recovery](how-to/administrate/backup-disaster-recovery.md) - * [Cassandra](how-to/administrate/cassandra.md) - * [Elasticsearch](how-to/administrate/elasticsearch.md) - * [Etcd](how-to/administrate/etcd.md) - * [General - Linux](how-to/administrate/general-linux.md) - * [Minio](how-to/administrate/minio.md) - * [Operational procedures](how-to/administrate/operations.md) - * [Restund (TURN)](how-to/administrate/restund.md) - * [Investigative tasks (e.g. searching for users as server admin)](how-to/administrate/users.md) -* [Reference](understand/README.md) - * [Architecture Overview](understand/overview.md) - * [Single Sign-On and User Provisioning](understand/single-sign-on/README.md) - * [Audio/video calling, restund servers (TURN/STUN)](understand/restund.md) - * [Conference Calling 2.0 (aka SFT)](understand/sft.md) - * [Federated Conference Calling](understand/sft.md#federated-conference-calling) - * [Minio](understand/minio.md) - * [Helm](understand/helm.md) - * [Federation](understand/federation/README.md) - * [Connecting Wire Clients](understand/associate/README.md) - * [Client API documentation](understand/api-client-perspective/README.md) - * [Crypto libraries and sources of randomness](understand/crypto-libs.md) - * [Block personal user creation](understand/block-user-creation.md) - * [Classified Domains](understand/classified-domains.md) - * [Federation](understand/configure-federation.md) - * [Installing and setting up Legal Hold](understand/legalhold.md) - * [Messaging Layer Security (MLS)](understand/mls.md) - * [User Searchability](understand/searchability.md) - * [Server and team feature settings](understand/team-feature-settings.md) -* [Developer Notes](developer/README.md) - * [Developer](developer/developer/README.md) - * [API versioning](developer/developer/api-versioning.md) - * [How to build wire-server](developer/developer/building.md) - * [Writing code interacting with cassandra](developer/developer/cassandra-interaction.md) - * [Changelog](developer/developer/changelog.md) - * [Coding conventions](developer/developer/coding-conventions.md) - * [Dependencies](developer/developer/dependencies.md) - * [Editor setup](developer/developer/editor-setup.md) - * [Features](developer/developer/features.md) - * [Federation API Conventions](developer/developer/federation-api-conventions.md) - * [Federation Design Aspects](developer/developer/federation-design-aspects.md) - * [Developer how-to’s](developer/developer/how-to.md) - * [Refactoring galley to support large conversations](developer/developer/large-conversations.md) - * [Linting](developer/developer/linting.md) - * [OpenTelemetry Instrumentation](developer/developer/open-telemetry.md) - * [PR Guidelines](developer/developer/pr-guidelines.md) - * [Internal processes](developer/developer/processes.md) - * [Storing SCIM-related data](developer/developer/scim/storage.md) - * [Servant](developer/developer/servant.md) - * [Testing the wire-server Haskell code base](developer/developer/testing.md) - * [Upgrading](developer/developer/upgrading.md) - * [Reference](developer/reference/README.md) - * [Config Options](developer/reference/config-options.md) - * [Creating and populating conversations](developer/reference/conversation.md) - * [Maintaining ElasticSearch](developer/reference/elastic-search.md) - * [ElasticSearch migration instructions for release 2021-02-16](developer/reference/elasticsearch-migration-2021-02-16.md) - * [Make docker and QEMU](developer/reference/make-docker-and-qemu.md) - * [OAuth](developer/reference/oauth.md) - * [SCIM tokens](developer/reference/provisioning/scim-token.md) - * [RabbitMQ Consumer](developer/reference/rabbitmq-consumer.md) - * [Spar braindump](developer/reference/spar-braindump.md) - * [Legal hold](developer/reference/team/legalhold.md) - * [User Activation](developer/reference/user/activation.md) - * [Connection](developer/reference/user/connection.md) - * [Connection backend internals](developer/reference/user/connection.md#connection-backend-internals) - * [User Registration](developer/reference/user/registration.md) - * [User Rich info](developer/reference/user/rich-info.md) -* [Security Responses](security-responses/README.md) - * [2023-01-19 - Security Advisory: HTML Injection in wire.com](security-responses/2023-01-19\_html\_injection.md) - * [2023-01-04 - Outage of wire.com caused by a DoS attack](security-responses/2023-01-04\_website\_outage.md) - * [2022-11-01 - High Severity Vulnerability in OpenSSL](security-responses/2022-11-01\_openssl.md) - * [2022-05-23 - wire.com website outage](security-responses/2022-05-23\_website\_outage.md) - * [2022-02 - CVE-2021-44521 (Cassandra "user defined functions")](security-responses/2022-02-21\_cve-2021-44521.md) - * [2021-12 - log4shell](security-responses/2021-12-15\_log4shell.md) -* [Release Notes](changelog/README.md) - * [changelog](changelog/changelog.md) diff --git a/src/understand/sft.md b/src/understand/sft.md index ffed35a..cf116ae 100644 --- a/src/understand/sft.md +++ b/src/understand/sft.md @@ -1,5 +1,3 @@ - - # Conference Calling 2.0 (aka SFT) ## Background