Skip to content

🚀release-docs

🚀release-docs #24

Workflow file for this run

name: 🚀release-docs
on:
workflow_dispatch:
inputs:
permissions:
id-token: write
contents: read
env:
DOGU_AWS_REGION: ap-northeast-2
DOCS_GA_ID: G-5WLY043T9W
jobs:
build:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Cache Yarn Unplugged
uses: actions/cache@v3
id: cache_yarn_unplugged
env:
cache-name: cache-yarn-unplugged
with:
path: ${{ github.workspace }}/.yarn/unplugged
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('yarn.lock') }}
- uses: actions/setup-node@v3
with:
node-version: 18
cache: yarn
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Write env for production
run: echo "GOOGLE_ANALYTICS_ID=$GOOGLE_ANALYTICS_ID" >> ./docs/.env
env:
GOOGLE_ANALYTICS_ID: ${{ env.DOCS_GA_ID }}
- name: Build docs
run: yarn build
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1-node16
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.DOGU_AWS_REGION }}
- name: Login to Amazon ECR Private
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
with:
mask-password: true
- name: Build and push
uses: docker/build-push-action@v3
with:
push: true
context: ./
tags: ${{ steps.login-ecr.outputs.registry }}/prod-dogu-docs:latest
platforms: linux/amd64
target: dogu-docs
release:
runs-on: dogu-docs
needs: build
steps:
- name: docker init
run: |
docker ps -qa | xargs -r docker rm -f
docker system prune --volumes -a -f
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1-node16
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.DOGU_AWS_REGION }}
- name: Login to Amazon ECR Private
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
with:
mask-password: true
- name: Run
run: |
docker pull ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.DOGU_AWS_REGION }}.amazonaws.com/prod-dogu-docs:latest
CONTAINERS=$(docker ps -a -q)
if [ -n "$CONTAINERS" ]; then
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker run -d -p 3100:3100 ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.DOGU_AWS_REGION }}.amazonaws.com/prod-dogu-docs:latest
docker image prune -f
else
docker run -d -p 3100:3100 ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.DOGU_AWS_REGION }}.amazonaws.com/prod-dogu-docs:latest
docker image prune -f
fi
crawl-docs:
runs-on: ubuntu-latest
needs: release
steps:
- name: Algolia recrawl
uses: algolia/[email protected]
id: algolia_crawler
with:
crawler-user-id: ${{ secrets.DOCS_CRAWLER_USER_ID }}
crawler-api-key: ${{ secrets.DOCS_CRAWLER_API_KEY }}
algolia-app-id: ${{ secrets.DOCS_ALGOLIA_APP_ID }}
algolia-api-key: ${{ secrets.DOCS_ALGOLIA_API_KEY }}
site-url: 'https://docs.dogutech.io'
crawler-name: 'dogutech'
send-slack:
runs-on: ubuntu-latest
needs: crawl-docs
if: ${{ always() }}
steps:
- name: Send Slack
uses: dogu-team/[email protected]
with:
template: 'CD'
slack-channel-id: 'C057ML9UH34'
result-status: ${{ needs.crawl-docs.result }}
ignore-notify: false
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}