Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 18 additions & 104 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,115 +8,29 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-deploy-docs
cancel-in-progress: false
jobs:
deploy-docs-next:
runs-on: ubuntu-latest
env:
DOCKER_IMAGE: ghcr.io/${{ github.repository }}-docs:next
steps:
- name: Check out the repo
uses: actions/checkout@v7
- name: Login to GitHub container registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build docker image
uses: docker/build-push-action@v7
with:
context: .
push: true
cache-from: type=gha,scope=docs-app
cache-to: type=gha,mode=max,scope=docs-app
tags: ${{ env.DOCKER_IMAGE }}
file: ./docs.Dockerfile
run-docs-next:
needs: deploy-docs-next
runs-on: ubuntu-latest
env:
NAME: ui-react-docs-next
DOCKER_IMAGE: ghcr.io/${{ github.repository }}-docs:next
steps:
- name: executing remote ssh commands
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.KIBA_APP_BOX_URL }}
username: ${{ secrets.KIBA_APP_BOX_USER }}
key: ${{ secrets.KIBA_APP_BOX_SSH_KEY }}
port: ${{ secrets.KIBA_APP_BOX_PORT }}
envs: DOCKER_IMAGE,NAME
script_stop: true
script: |
url="ui-react-docs-next.kibalabs.com"
varsFile=~/.${NAME}.vars
docker pull ${DOCKER_IMAGE}
docker stop ${NAME} && docker rm ${NAME} || true
docker run \
--name ${NAME} \
--detach \
--publish-all \
--restart on-failure \
--env NAME=${NAME} \
--env VIRTUAL_HOST=${url} \
--env LETSENCRYPT_HOST=${url} \
--env-file ${varsFile} \
${DOCKER_IMAGE}
deploy-docs:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
env:
DOCKER_IMAGE: ghcr.io/${{ github.repository }}-docs:latest
DOMAIN_NAME: ${{ startsWith(github.ref, 'refs/tags/v') && 'ui-react-docs.kibalabs.com' || 'ui-react-docs-next.kibalabs.com' }}
steps:
- name: Check out the repo
uses: actions/checkout@v7
- name: Login to GitHub container registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build docker image
uses: docker/build-push-action@v7
- name: Set up node
uses: actions/setup-node@v7
with:
context: .
push: true
cache-from: type=gha,scope=docs-app
cache-to: type=gha,mode=max,scope=docs-app
tags: ${{ env.DOCKER_IMAGE }}
file: ./docs.Dockerfile
run-docs:
needs: deploy-docs
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
env:
NAME: ui-react-docs
DOCKER_IMAGE: ghcr.io/${{ github.repository }}-docs:latest
steps:
- name: executing remote ssh commands
uses: appleboy/ssh-action@master
node-version: '24'
cache: npm
- name: Install dependencies
run: make install
- name: Build docs
run: make build-docs
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v6
with:
host: ${{ secrets.KIBA_APP_BOX_URL }}
username: ${{ secrets.KIBA_APP_BOX_USER }}
key: ${{ secrets.KIBA_APP_BOX_SSH_KEY }}
port: ${{ secrets.KIBA_APP_BOX_PORT }}
envs: DOCKER_IMAGE,NAME
script_stop: true
script: |
url="ui-react-docs.kibalabs.com"
varsFile=~/.${NAME}.vars
docker pull ${DOCKER_IMAGE}
docker stop ${NAME} && docker rm ${NAME} || true
docker run \
--name ${NAME} \
--detach \
--publish-all \
--restart on-failure \
--env NAME=${NAME} \
--env VIRTUAL_HOST=${url} \
--env LETSENCRYPT_HOST=${url} \
--env-file ${varsFile} \
${DOCKER_IMAGE}
aws-access-key-id: ${{ secrets.SITE_DEPLOYER_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.SITE_DEPLOYER_AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.SITE_DEPLOYER_AWS_REGION }}
- name: Sync to S3
run: aws s3 sync ./dist s3://${{ secrets.SITE_DEPLOYMENT_S3_BUCKET_NAME }}/${{ env.DOMAIN_NAME }}/
- name: Invalidate CloudFront cache
run: aws cloudfront create-invalidation --distribution-id ${{ secrets.SITE_DEPLOYMENT_CLOUDFRONT_ID }} --paths "/${{ env.DOMAIN_NAME }}/*"
Loading