From 40e2711d15b90838b2ec551cd9e950948961f9ab Mon Sep 17 00:00:00 2001 From: Eugen Soloviov Date: Sat, 2 Mar 2024 18:27:35 +0300 Subject: [PATCH 1/9] test server-build.yaml --- .github/workflows/server-build.yaml | 71 +++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .github/workflows/server-build.yaml diff --git a/.github/workflows/server-build.yaml b/.github/workflows/server-build.yaml new file mode 100644 index 00000000..e32f5c0e --- /dev/null +++ b/.github/workflows/server-build.yaml @@ -0,0 +1,71 @@ +name: Build and Deploy + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-22.04 + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Allow ports 3006 and 3007 + run: | + sudo ufw allow 3006 + sudo ufw allow 3007 + + - name: Install dependencies + run: | + sudo apt update + sudo apt install -y git curl docker.io docker-compose + + - name: Set up Docker + run: | + sudo groupadd docker + sudo usermod -aG docker $USER + docker run hello-world + docker rm $(docker ps -a -q --filter "ancestor=hello-world") + + - name: Install Node Version Manager (NVM) + run: | + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash + export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + nvm install 18 && nvm use 18 && nvm alias default 18 + npm i -g npm@latest + + - name: Install and configure @deep-foundation/deeplinks + run: | + npm rm --unsafe-perm -g @deep-foundation/deeplinks + npm install --unsafe-perm -g @deep-foundation/deeplinks@latest + + - name: Set environment variables + run: | + export HOST_IP="185.105.118.59" + export DEEPCASE_HOST="$HOST_IP:3007" + export DEEPLINKS_HOST="$HOST_IP:3006" + export HASURA_ADMIN_SECRET=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") + export POSTGRES_PASSWORD=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") + export MINIO_ACCESS_KEY=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") + export MINIO_SECRET_KEY=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") + + # Create call-options.json + echo '{ + "operation": "run", + "envs": { + "DEEPLINKS_PUBLIC_URL": "http://$DEEPLINKS_HOST", + "NEXT_PUBLIC_DEEPLINKS_URL": "http://$DEEPLINKS_HOST", + "NEXT_PUBLIC_GQL_PATH": "$DEEPLINKS_HOST/gql", + "NEXT_PUBLIC_GQL_SSL": "0", + "NEXT_PUBLIC_DEEPLINKS_SERVER": "http://$DEEPCASE_HOST", + "NEXT_PUBLIC_ENGINES_ROUTE": "0", + "NEXT_PUBLIC_DISABLE_CONNECTOR": "1", + "JWT_SECRET": "{\"type\":\"HS256\",\"key\":\"$(node -e "console.log(require('crypto').randomBytes(50).toString('base64'));")\"}", + "DEEPLINKS_HASURA_STORAGE_URL": "http://host.docker.internal:8000/", + "HASURA_GRAPHQL_ADMIN_SECRET": "$HASURA_ADMIN_SECRET", + "MIGRATIONS_HASURA_SECRET": "$HASURA_ADMIN_SECRET" + } + }' > call-options.json From 63d47e6d699b0b0748cdfe164932dbd5a3d22b48 Mon Sep 17 00:00:00 2001 From: Eugen Soloviov Date: Sat, 2 Mar 2024 18:28:43 +0300 Subject: [PATCH 2/9] Update server build workflow --- .github/workflows/server-build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/server-build.yaml b/.github/workflows/server-build.yaml index e32f5c0e..c96365dd 100644 --- a/.github/workflows/server-build.yaml +++ b/.github/workflows/server-build.yaml @@ -1,4 +1,4 @@ -name: Build and Deploy +name: Server build on: push: From b8922c90ce475a5042f3f798bc2c1b07e9100a2f Mon Sep 17 00:00:00 2001 From: Eugen Soloviov Date: Sat, 2 Mar 2024 18:41:10 +0300 Subject: [PATCH 3/9] Update server-build.yaml with dependency installation and port allowance --- .github/workflows/server-build.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/server-build.yaml b/.github/workflows/server-build.yaml index c96365dd..039a1d76 100644 --- a/.github/workflows/server-build.yaml +++ b/.github/workflows/server-build.yaml @@ -12,16 +12,16 @@ jobs: - name: Checkout code uses: actions/checkout@v2 + - name: Install dependencies + run: | + sudo apt-get update && sudo apt-get upgrade + sudo apt install -y git curl docker.io docker-compose + - name: Allow ports 3006 and 3007 run: | sudo ufw allow 3006 sudo ufw allow 3007 - - name: Install dependencies - run: | - sudo apt update - sudo apt install -y git curl docker.io docker-compose - - name: Set up Docker run: | sudo groupadd docker From 9feca943be06dd9fce9eb346177c688380d50a40 Mon Sep 17 00:00:00 2001 From: Eugen Soloviov Date: Sat, 2 Mar 2024 19:13:03 +0300 Subject: [PATCH 4/9] Add production build workflow --- .github/workflows/production-build.yaml | 90 +++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .github/workflows/production-build.yaml diff --git a/.github/workflows/production-build.yaml b/.github/workflows/production-build.yaml new file mode 100644 index 00000000..fdcf3ff4 --- /dev/null +++ b/.github/workflows/production-build.yaml @@ -0,0 +1,90 @@ +name: Server build + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-22.04 + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install dependencies + run: | + sudo apt-get update && sudo apt-get upgrade + sudo apt install -y git curl docker.io docker-compose + + - name: Allow ports 3006 and 3007 + run: | + sudo ufw allow 3006 + sudo ufw allow 3007 + + - name: Set up Docker + run: | + sudo groupadd docker + sudo usermod -aG docker $USER + docker run hello-world + docker rm $(docker ps -a -q --filter "ancestor=hello-world") + + - name: Install Node Version Manager (NVM) + run: | + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash + export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + nvm install 18 && nvm use 18 && nvm alias default 18 + npm i -g npm@latest + + - name: Install and configure @deep-foundation/deeplinks + run: | + npm rm --unsafe-perm -g @deep-foundation/deeplinks + npm install --unsafe-perm -g @deep-foundation/deeplinks@latest + + - name: Set environment variables + run: | + export HOST_IP="185.105.118.59" + export DEEPCASE_HOST="$HOST_IP:3007" + export DEEPLINKS_HOST="$HOST_IP:3006" + export HASURA_ADMIN_SECRET=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") + export POSTGRES_PASSWORD=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") + export MINIO_ACCESS_KEY=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") + export MINIO_SECRET_KEY=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") + + - name: Create call-options.json + run: | + tee call-options.json << JSON + { + "operation": "run", + "envs": { + "DEEPLINKS_PUBLIC_URL": "http://$DEEPLINKS_HOST", + "NEXT_PUBLIC_DEEPLINKS_URL": "http://$DEEPLINKS_HOST", + "NEXT_PUBLIC_GQL_PATH": "$DEEPLINKS_HOST/gql", + "NEXT_PUBLIC_GQL_SSL": "0", + "NEXT_PUBLIC_DEEPLINKS_SERVER": "http://$DEEPCASE_HOST", + "NEXT_PUBLIC_ENGINES_ROUTE": "0", + "NEXT_PUBLIC_DISABLE_CONNECTOR": "1", + "JWT_SECRET": "'{\"type\":\"HS256\",\"key\":\"$(node -e "console.log(require('crypto').randomBytes(50).toString('base64'));")\"}'", + "DEEPLINKS_HASURA_STORAGE_URL": "http://host.docker.internal:8000/", + "HASURA_GRAPHQL_ADMIN_SECRET": "$HASURA_ADMIN_SECRET", + "MIGRATIONS_HASURA_SECRET": "$HASURA_ADMIN_SECRET", + "DEEPLINKS_HASURA_SECRET": "$HASURA_ADMIN_SECRET", + "POSTGRES_PASSWORD": "$POSTGRES_PASSWORD", + "HASURA_GRAPHQL_DATABASE_URL": "postgres://postgres:$POSTGRES_PASSWORD@postgres:5432/postgres", + "POSTGRES_MIGRATIONS_SOURCE": "postgres://postgres:$POSTGRES_PASSWORD@host.docker.internal:5432/postgres?sslmode=disable", + "RESTORE_VOLUME_FROM_SNAPSHOT": "0", + "MANUAL_MIGRATIONS": "1", + "MINIO_ROOT_USER": "$MINIO_ACCESS_KEY", + "MINIO_ROOT_PASSWORD": "$MINIO_SECRET_KEY", + "S3_ACCESS_KEY": "$MINIO_ACCESS_KEY", + "S3_SECRET_KEY": "$MINIO_SECRET_KEY" + } + } + JSON + + - name: Run deeplinks + run: | + export DEEPLINKS_CALL_OPTIONS=$(cat call-options.json) + export DEBUG="deeplinks:engine:*,deeplinks:migrations:*" + deeplinks From 94f5b407a5db36bd7b04a75c5de1b6521e5ec9dc Mon Sep 17 00:00:00 2001 From: Eugen Soloviov Date: Sat, 2 Mar 2024 19:19:58 +0300 Subject: [PATCH 5/9] Remove containerd.io and update dependencies --- .github/workflows/production-build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/production-build.yaml b/.github/workflows/production-build.yaml index fdcf3ff4..21d9941a 100644 --- a/.github/workflows/production-build.yaml +++ b/.github/workflows/production-build.yaml @@ -14,6 +14,7 @@ jobs: - name: Install dependencies run: | + sudo apt-get remove containerd.io sudo apt-get update && sudo apt-get upgrade sudo apt install -y git curl docker.io docker-compose From 30bd3795576e9c4d17d6c7e6bbcfb9ef893fea7e Mon Sep 17 00:00:00 2001 From: Eugen Soloviov Date: Sat, 2 Mar 2024 19:25:17 +0300 Subject: [PATCH 6/9] Remove Docker setup and allow ports 3006 and 3007 --- .github/workflows/production-build.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/production-build.yaml b/.github/workflows/production-build.yaml index 21d9941a..2039aa9f 100644 --- a/.github/workflows/production-build.yaml +++ b/.github/workflows/production-build.yaml @@ -23,13 +23,6 @@ jobs: sudo ufw allow 3006 sudo ufw allow 3007 - - name: Set up Docker - run: | - sudo groupadd docker - sudo usermod -aG docker $USER - docker run hello-world - docker rm $(docker ps -a -q --filter "ancestor=hello-world") - - name: Install Node Version Manager (NVM) run: | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash From 235ee25ff0252c6cb191b3ddf0457d10f8ec8391 Mon Sep 17 00:00:00 2001 From: Eugen Soloviov Date: Sat, 2 Mar 2024 19:28:23 +0300 Subject: [PATCH 7/9] Update production-build.yaml to remove containerd.io installation and allow ports 3006 and 3007 --- .github/workflows/production-build.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/production-build.yaml b/.github/workflows/production-build.yaml index 2039aa9f..5763ad8e 100644 --- a/.github/workflows/production-build.yaml +++ b/.github/workflows/production-build.yaml @@ -14,10 +14,8 @@ jobs: - name: Install dependencies run: | - sudo apt-get remove containerd.io sudo apt-get update && sudo apt-get upgrade - sudo apt install -y git curl docker.io docker-compose - + sudo apt install -y git curl - name: Allow ports 3006 and 3007 run: | sudo ufw allow 3006 From 096d6f1f635a6bc7bd2ef4520fb72c5656cd1ce8 Mon Sep 17 00:00:00 2001 From: Eugen Soloviov Date: Sat, 2 Mar 2024 19:32:39 +0300 Subject: [PATCH 8/9] Update dependencies and install git and curl --- .github/workflows/production-build.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/production-build.yaml b/.github/workflows/production-build.yaml index 5763ad8e..f1fff768 100644 --- a/.github/workflows/production-build.yaml +++ b/.github/workflows/production-build.yaml @@ -12,10 +12,14 @@ jobs: - name: Checkout code uses: actions/checkout@v2 - - name: Install dependencies + - name: Update dependencies run: | sudo apt-get update && sudo apt-get upgrade + + - name: Install dependencies + run: | sudo apt install -y git curl + - name: Allow ports 3006 and 3007 run: | sudo ufw allow 3006 From faafd5d92f2542bbac94f28f5d6fa76a0dfd2489 Mon Sep 17 00:00:00 2001 From: Eugen Soloviov Date: Sat, 2 Mar 2024 19:42:02 +0300 Subject: [PATCH 9/9] Update server-build.yaml and remove production-build.yaml --- .github/workflows/production-build.yaml | 86 ------------------------- .github/workflows/server-build.yaml | 43 +++++++++---- 2 files changed, 29 insertions(+), 100 deletions(-) delete mode 100644 .github/workflows/production-build.yaml diff --git a/.github/workflows/production-build.yaml b/.github/workflows/production-build.yaml deleted file mode 100644 index f1fff768..00000000 --- a/.github/workflows/production-build.yaml +++ /dev/null @@ -1,86 +0,0 @@ -name: Server build - -on: - push: - branches: - - main - -jobs: - build: - runs-on: ubuntu-22.04 - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Update dependencies - run: | - sudo apt-get update && sudo apt-get upgrade - - - name: Install dependencies - run: | - sudo apt install -y git curl - - - name: Allow ports 3006 and 3007 - run: | - sudo ufw allow 3006 - sudo ufw allow 3007 - - - name: Install Node Version Manager (NVM) - run: | - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash - export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - nvm install 18 && nvm use 18 && nvm alias default 18 - npm i -g npm@latest - - - name: Install and configure @deep-foundation/deeplinks - run: | - npm rm --unsafe-perm -g @deep-foundation/deeplinks - npm install --unsafe-perm -g @deep-foundation/deeplinks@latest - - - name: Set environment variables - run: | - export HOST_IP="185.105.118.59" - export DEEPCASE_HOST="$HOST_IP:3007" - export DEEPLINKS_HOST="$HOST_IP:3006" - export HASURA_ADMIN_SECRET=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") - export POSTGRES_PASSWORD=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") - export MINIO_ACCESS_KEY=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") - export MINIO_SECRET_KEY=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") - - - name: Create call-options.json - run: | - tee call-options.json << JSON - { - "operation": "run", - "envs": { - "DEEPLINKS_PUBLIC_URL": "http://$DEEPLINKS_HOST", - "NEXT_PUBLIC_DEEPLINKS_URL": "http://$DEEPLINKS_HOST", - "NEXT_PUBLIC_GQL_PATH": "$DEEPLINKS_HOST/gql", - "NEXT_PUBLIC_GQL_SSL": "0", - "NEXT_PUBLIC_DEEPLINKS_SERVER": "http://$DEEPCASE_HOST", - "NEXT_PUBLIC_ENGINES_ROUTE": "0", - "NEXT_PUBLIC_DISABLE_CONNECTOR": "1", - "JWT_SECRET": "'{\"type\":\"HS256\",\"key\":\"$(node -e "console.log(require('crypto').randomBytes(50).toString('base64'));")\"}'", - "DEEPLINKS_HASURA_STORAGE_URL": "http://host.docker.internal:8000/", - "HASURA_GRAPHQL_ADMIN_SECRET": "$HASURA_ADMIN_SECRET", - "MIGRATIONS_HASURA_SECRET": "$HASURA_ADMIN_SECRET", - "DEEPLINKS_HASURA_SECRET": "$HASURA_ADMIN_SECRET", - "POSTGRES_PASSWORD": "$POSTGRES_PASSWORD", - "HASURA_GRAPHQL_DATABASE_URL": "postgres://postgres:$POSTGRES_PASSWORD@postgres:5432/postgres", - "POSTGRES_MIGRATIONS_SOURCE": "postgres://postgres:$POSTGRES_PASSWORD@host.docker.internal:5432/postgres?sslmode=disable", - "RESTORE_VOLUME_FROM_SNAPSHOT": "0", - "MANUAL_MIGRATIONS": "1", - "MINIO_ROOT_USER": "$MINIO_ACCESS_KEY", - "MINIO_ROOT_PASSWORD": "$MINIO_SECRET_KEY", - "S3_ACCESS_KEY": "$MINIO_ACCESS_KEY", - "S3_SECRET_KEY": "$MINIO_SECRET_KEY" - } - } - JSON - - - name: Run deeplinks - run: | - export DEEPLINKS_CALL_OPTIONS=$(cat call-options.json) - export DEBUG="deeplinks:engine:*,deeplinks:migrations:*" - deeplinks diff --git a/.github/workflows/server-build.yaml b/.github/workflows/server-build.yaml index 039a1d76..f1fff768 100644 --- a/.github/workflows/server-build.yaml +++ b/.github/workflows/server-build.yaml @@ -12,23 +12,19 @@ jobs: - name: Checkout code uses: actions/checkout@v2 - - name: Install dependencies + - name: Update dependencies run: | sudo apt-get update && sudo apt-get upgrade - sudo apt install -y git curl docker.io docker-compose + + - name: Install dependencies + run: | + sudo apt install -y git curl - name: Allow ports 3006 and 3007 run: | sudo ufw allow 3006 sudo ufw allow 3007 - - name: Set up Docker - run: | - sudo groupadd docker - sudo usermod -aG docker $USER - docker run hello-world - docker rm $(docker ps -a -q --filter "ancestor=hello-world") - - name: Install Node Version Manager (NVM) run: | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash @@ -52,8 +48,10 @@ jobs: export MINIO_ACCESS_KEY=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") export MINIO_SECRET_KEY=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'));") - # Create call-options.json - echo '{ + - name: Create call-options.json + run: | + tee call-options.json << JSON + { "operation": "run", "envs": { "DEEPLINKS_PUBLIC_URL": "http://$DEEPLINKS_HOST", @@ -63,9 +61,26 @@ jobs: "NEXT_PUBLIC_DEEPLINKS_SERVER": "http://$DEEPCASE_HOST", "NEXT_PUBLIC_ENGINES_ROUTE": "0", "NEXT_PUBLIC_DISABLE_CONNECTOR": "1", - "JWT_SECRET": "{\"type\":\"HS256\",\"key\":\"$(node -e "console.log(require('crypto').randomBytes(50).toString('base64'));")\"}", + "JWT_SECRET": "'{\"type\":\"HS256\",\"key\":\"$(node -e "console.log(require('crypto').randomBytes(50).toString('base64'));")\"}'", "DEEPLINKS_HASURA_STORAGE_URL": "http://host.docker.internal:8000/", "HASURA_GRAPHQL_ADMIN_SECRET": "$HASURA_ADMIN_SECRET", - "MIGRATIONS_HASURA_SECRET": "$HASURA_ADMIN_SECRET" + "MIGRATIONS_HASURA_SECRET": "$HASURA_ADMIN_SECRET", + "DEEPLINKS_HASURA_SECRET": "$HASURA_ADMIN_SECRET", + "POSTGRES_PASSWORD": "$POSTGRES_PASSWORD", + "HASURA_GRAPHQL_DATABASE_URL": "postgres://postgres:$POSTGRES_PASSWORD@postgres:5432/postgres", + "POSTGRES_MIGRATIONS_SOURCE": "postgres://postgres:$POSTGRES_PASSWORD@host.docker.internal:5432/postgres?sslmode=disable", + "RESTORE_VOLUME_FROM_SNAPSHOT": "0", + "MANUAL_MIGRATIONS": "1", + "MINIO_ROOT_USER": "$MINIO_ACCESS_KEY", + "MINIO_ROOT_PASSWORD": "$MINIO_SECRET_KEY", + "S3_ACCESS_KEY": "$MINIO_ACCESS_KEY", + "S3_SECRET_KEY": "$MINIO_SECRET_KEY" } - }' > call-options.json + } + JSON + + - name: Run deeplinks + run: | + export DEEPLINKS_CALL_OPTIONS=$(cat call-options.json) + export DEBUG="deeplinks:engine:*,deeplinks:migrations:*" + deeplinks