# When publish a release. This workflow will trigger and deploy to site. name: Deploy website on: release: types: [published] permissions: contents: write jobs: setup: runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/') && (contains(github.ref_name, '-') == false) steps: - name: checkout uses: actions/checkout@v3 - name: cache package-lock.json uses: actions/cache@v3 with: path: package-temp-dir key: lock-${{ github.sha }} - name: create package-lock.json run: npm i --package-lock-only --ignore-scripts - name: hack for single file run: | if [ ! -d "package-temp-dir" ]; then mkdir package-temp-dir fi cp package-lock.json package-temp-dir - name: cache node_modules id: node_modules_cache_id uses: actions/cache@v3 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: install if: steps.node_modules_cache_id.outputs.cache-hit != 'true' run: npm ci build-and-deploy: runs-on: ubuntu-latest needs: setup steps: - name: checkout uses: actions/checkout@v3 - name: restore cache from package-lock.json uses: actions/cache@v3 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules uses: actions/cache@v3 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: build run: npm run predeploy - name: Get version id: publish-version run: echo "VERSION=$(echo ${{ github.ref_name }} | sed 's/\./-/g')" >> $GITHUB_OUTPUT - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./_site force_orphan: true - name: Deploy to Surge (with TAG) run: | export DEPLOY_DOMAIN=ant-design-${{ steps.publish-version.outputs.VERSION }}.surge.sh npx surge --project ./_site --domain $DEPLOY_DOMAIN --token ${{ secrets.SURGE_TOKEN }} - name: Create Commit Comment uses: peter-evans/commit-comment@v1 with: body: | Doc site for this release: https://ant-design-${{ steps.publish-version.outputs.VERSION }}.surge.sh