name: Documents on: workflow_dispatch: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: ensure-toolchain: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Node.js environment uses: actions/setup-node@v3.7.0 with: node-version: "20.11.0" - name: Cache dependencies id: cache-node-modules uses: actions/cache@v3 env: cache-name: cache-node-modules with: path: ./docs/node_modules key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('docs/package.json') }}-${{ hashFiles('docs/package-lock.json') }} - name: echo node version working-directory: ./docs run: node -v - if: ${{ steps.cache-node-modules.outputs.cache-hit != 'true' }} name: Install dependencies working-directory: ./docs continue-on-error: true run: | sudo apt update && sudo apt install -y build-essential source ~/.bashrc npm install build-and-deploy: permissions: contents: write runs-on: ubuntu-latest needs: [ ensure-toolchain ] steps: - uses: actions/checkout@v3 - name: Cache dependencies id: cache-node-modules uses: actions/cache@v3 env: cache-name: cache-node-modules with: path: ./docs/node_modules key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('package.json') }} - name: Setup Node.js environment uses: actions/setup-node@v3.7.0 with: node-version: "20.11.0" - name: Build working-directory: ./docs run: npm run docs:build - name: Deploy working-directory: ./docs env: AWS_ENDPOINT_URL: ${{ secrets.DOCS_DEPLOY_S3_ENDPOINT_URL }} AWS_ACCESS_KEY_ID: ${{ secrets.DOCS_DEPLOY_S3_API_KEY }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DOCS_DEPLOY_S3_SECRET_KEY }} if: github.ref == 'refs/heads/main' && github.repository == 'DragonOS-Community/DADK' run: | sudo apt-get update sudo apt-get install -y python3-pip python3-setuptools python3 -m pip install --user awscli aws s3 sync ./.vuepress/dist s3://dragonos-docs/p/dadk --delete