Skip to content

Commit

Permalink
fix(staging): deploy to staging
Browse files Browse the repository at this point in the history
  • Loading branch information
bas-kirill committed Aug 29, 2024
1 parent b95bd85 commit 0471a75
Showing 1 changed file with 97 additions and 119 deletions.
216 changes: 97 additions & 119 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -182,11 +182,70 @@ jobs:
with:
distribution: temurin
java-version: "21.0"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- uses: actions/setup-node@v4
with:
node-version: "20.16.0"
- name: "Install `Redocly`"
run: npm i -g @redocly/cli@latest
- name: Cache npm dependencies
uses: actions/cache@v2
with:
path: '~/.npm'
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Dependencies
run: npm install --prefix client
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.DEPLOY_SERVER_SSH_PRIVATE_KEY }}
known_hosts: 'just-a-placeholder-so-we-dont-get-errors'
- name: Adding Known Hosts
run: ssh-keyscan -H kiryuxa.com >> ~/.ssh/known_hosts
- name: Deploy at home lab
run: echo "$(pwd)" && ./tools/scripts/deploy.sh dev
env:
SSH_USER: ${{ secrets.SSH_USER }}
SSH_HOST: ${{ secrets.SSH_HOST }}
MUSE_DOCKER_DEFAULT_CONTEXT: default
MUSE_JWT_SECRET_KEY: ${{ secrets.MUSE_JWT_SECRET_KEY }}
CI: false # https://stackoverflow.com/questions/34917977/disable-npm-warnings-as-errors-build-definition-tfs
deploy-staging:
name: "[SERVER] Deploy to Staging"
if: github.event.ref == 'refs/heads/main'
needs:
- openapi-linter
- client-linter
- client-static-analyzer
- server-linter
- server-static-analyzer
- server-unit-tests
- server-sonarqube
runs-on: ubuntu-22.04
environment:
name: staging
url: http://staging.muse.kiryuxa.com
steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: myshx
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 21 (Temurin)
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21.0"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- uses: actions/setup-node@v4
with:
node-version: "20.16.0"
- name: "Install `Redocly`"
run: npm i -g @redocly/cli@latest
- name: Cache npm dependencies
Expand All @@ -206,83 +265,13 @@ jobs:
- name: Adding Known Hosts
run: ssh-keyscan -H kiryuxa.com >> ~/.ssh/known_hosts
- name: Deploy at home lab
run: echo "$(pwd)" && ./tools/scripts/deploy.sh dev
run: echo "$(pwd)" && ./tools/scripts/deploy.sh staging
env:
SSH_USER: ${{ secrets.SSH_USER }}
SSH_HOST: ${{ secrets.SSH_HOST }}
MUSE_DOCKER_DEFAULT_CONTEXT: default
MUSE_JWT_SECRET_KEY: ${{ secrets.MUSE_JWT_SECRET_KEY }}
CI: false # https://stackoverflow.com/questions/34917977/disable-npm-warnings-as-errors-build-definition-tfs
# deploy-staging:
# name: "[SERVER] Deploy to Staging"
# if: github.event.ref == 'refs/heads/main'
# needs:
# - openapi-linter
# - client-linter
# - client-static-analyzer
# - server-linter
# - server-static-analyzer
# - server-unit-tests
# - server-sonarqube
# runs-on: ubuntu-22.04
# environment:
# name: staging
# url: http://staging.muse.kiryuxa.com
# steps:
# - name: Set up JDK 21 (Temurin)
# uses: actions/setup-java@v4
# with:
# distribution: temurin
# java-version: "21.0"
# - name: Check out the repo
# uses: actions/checkout@v4
# - name: Log in to Docker Hub
# run: docker login -u myshx -p ${{ secrets.DOCKER_HUB_TOKEN }}
# - name: Build Server Docker Image
# run: >
# ./tools/scripts/server/buildJar.sh
#
# docker build . -t "myshx/muse-server:staging-${{ github.sha }}" -f ./server/Dockerfile
# - name: Push Server Docker Image
# run: docker push "myshx/muse-server:staging-${{ github.sha }}"
# - name: Run server at home lab
# uses: appleboy/ssh-action@master
# env:
# GIT_COMMIT_SHA: ${{ github.sha }}
# STAGING_PORT: ${{ env.STAGING_PORT }}
# with:
# host: ${{ secrets.SERVER_HOST }}
# username: ${{ secrets.SERVER_USERNAME }}
# password: ${{ secrets.SERVER_PASSWORD }}
# port: ${{ secrets.SERVER_PORT }}
# envs: GIT_COMMIT_SHA, STAGING_PORT
# script: >
# export GIT_COMMIT_SHA=$GIT_COMMIT_SHA
#
# export STAGING_PORT=$STAGING_PORT
#
#
# staging_container_ids=$(docker inspect --format='{{.Config.Image}} {{.Id}}' $(docker ps -aq) | grep -E 'myshx/muse-server:staging-\b[0-9a-f]{40}\b' | awk '{print $2}')
#
# staging_image_ids=$(docker inspect --format='{{.Config.Image}} {{.Image}}' $(docker ps -aq) | grep -E 'myshx/muse-server:staging-\b[0-9a-f]{40}\b' | awk '{print $2}')
#
#
# for container_id in $staging_container_ids; do
# docker stop "$container_id"
# done
#
#
# for container_id in $staging_container_ids; do
# docker rm "$container_id"
# done
#
#
# for image_id in $staging_image_ids; do
# docker rmi -f "$image_id";
# done
#
#
# docker run -d -p $STAGING_PORT:8080 "myshx/muse-server:staging-$GIT_COMMIT_SHA"
# deploy-prod:
# name: "[SERVER] Deploy to Prod"
# needs:
Expand All @@ -292,57 +281,46 @@ jobs:
# name: prod
# url: http://prod.muse.kiryuxa.com
# steps:
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# username: myshx
# password: ${{ secrets.DOCKER_HUB_TOKEN }}
# - name: Checkout Code
# uses: actions/checkout@v4
# - name: Set up JDK 21 (Temurin)
# uses: actions/setup-java@v4
# with:
# distribution: temurin
# java-version: "21.0"
# - name: Check out the repo
# uses: actions/checkout@v4
# - name: Log in to Docker Hub
# run: docker login -u myshx -p ${{ secrets.DOCKER_HUB_TOKEN }}
# - name: Build Server Docker Image
# run: >
# ./tools/scripts/server/buildJar.sh
#
# docker build . -t "myshx/muse-server:prod-${{ github.sha }}" -f ./server/Dockerfile
# - name: Push Server Docker Image
# run: docker push "myshx/muse-server:prod-${{ github.sha }}"
# - name: Run server at home lab
# uses: appleboy/ssh-action@master
# env:
# GIT_COMMIT_SHA: ${{ github.sha }}
# PROD_PORT: ${{ env.PROD_PORT }}
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - uses: actions/setup-node@v4
# with:
# node-version: "20.16.0"
# - name: "Install `Redocly`"
# run: npm i -g @redocly/cli@latest
# - name: Cache npm dependencies
# uses: actions/cache@v2
# with:
# host: ${{ secrets.SERVER_HOST }}
# username: ${{ secrets.SERVER_USERNAME }}
# password: ${{ secrets.SERVER_PASSWORD }}
# port: ${{ secrets.SERVER_PORT }}
# envs: GIT_COMMIT_SHA, PROD_PORT
# script: >
# export GIT_COMMIT_SHA=$GIT_COMMIT_SHA
#
# export PROD_PORT=$PROD_PORT
#
#
# prod_container_ids=$(docker inspect --format='{{.Config.Image}} {{.Id}}' $(docker ps -aq) | grep -E 'myshx/muse-server:prod-\b[0-9a-f]{40}\b' | awk '{print $2}')
#
# prod_image_ids=$(docker inspect --format='{{.Config.Image}} {{.Image}}' $(docker ps -aq) | grep -E 'myshx/muse-server:prod-\b[0-9a-f]{40}\b' | awk '{print $2}')
#
#
# for container_id in $prod_container_ids; do
# docker stop "$container_id"
# done
#
#
# for container_id in $prod_container_ids; do
# docker rm "$container_id"
# done
#
#
# for image_id in $prod_image_ids; do
# docker rmi -f "$image_id";
# done
#
#
# docker run -d -p $PROD_PORT:8080 "myshx/muse-server:prod-$GIT_COMMIT_SHA"
# path: '~/.npm'
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
# restore-keys: |
# ${{ runner.os }}-node-
# - name: Install Dependencies
# run: npm install --prefix client
# - name: Install SSH Key
# uses: shimataro/ssh-key-action@v2
# with:
# key: ${{ secrets.DEPLOY_SERVER_SSH_PRIVATE_KEY }}
# known_hosts: 'just-a-placeholder-so-we-dont-get-errors'
# - name: Adding Known Hosts
# run: ssh-keyscan -H kiryuxa.com >> ~/.ssh/known_hosts
# - name: Deploy at home lab
# run: echo "$(pwd)" && ./tools/scripts/deploy.sh prod
# env:
# SSH_USER: ${{ secrets.SSH_USER }}
# SSH_HOST: ${{ secrets.SSH_HOST }}
# MUSE_DOCKER_DEFAULT_CONTEXT: default
# MUSE_JWT_SECRET_KEY: ${{ secrets.MUSE_JWT_SECRET_KEY }}
# CI: false # https://stackoverflow.com/questions/34917977/disable-npm-warnings-as-errors-build-definition-tfs

0 comments on commit 0471a75

Please sign in to comment.