diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..396411a --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,75 @@ +name: Docker Image CI + +on: + push: + branches: [ "master" ] + +jobs: + + build: + + runs-on: ubuntu-latest + + steps: + + - name: Checkout Github Repo + uses: actions/checkout@v4 + with: + # submodules: recursive + submodules: 'true' + token: ${{ secrets.CHECKOUT_REPO_TOKEN }} + + - name: Set Branch Name + run: echo "BRANCH_NAME=$(echo $GITHUB_REF | sed 's/refs\/heads\///')" >> $GITHUB_ENV + + - name: Set Timestamp + run: echo "TIMESTAMP=$(date +%s%3N)" >> $GITHUB_ENV + + - name: Fetch default.conf + uses: valitydev/action-download-file@v1 + with: + url: https://raw.githubusercontent.com/lcxfs1991/docschina-deployment/main/stencil/default.conf + target-path: . + + - name: Fetch Dockerfile + uses: valitydev/action-download-file@v1 + with: + url: https://raw.githubusercontent.com/lcxfs1991/docschina-deployment/main/stencil/Dockerfile + target-path: . + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 14 + + - name: Build docs + run: | + npm i + npm run build + + - name: Docker build + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ccr.ccs.tencentyun.com + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + platforms: linux/amd64 + tags: ccr.ccs.tencentyun.com/docschina/stencil:${{ env.BRANCH_NAME }}-${{ env.TIMESTAMP }} + + - name: Deployment + uses: TencentCloud/cli-action@v1 + with: + secret_id: ${{ secrets.SECRET_ID }} + secret_key: ${{ secrets.SECRET_KEY }} + region: ${{ secrets.LIGHTHOUSE_REGION }} + commands: tat InvokeCommand --cli-unfold-argument --region ap-shanghai --CommandId cmd-boc4aaiw --InstanceIds lhins-nkwfootc --Parameters '{"deployment":"stencil","image":"ccr.ccs.tencentyun.com/docschina/stencil:${{ env.BRANCH_NAME }}-${{ env.TIMESTAMP }}"}' + output_format: json