ci: fix pnpm deploy builds #34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Dev Deploy | |
| env: | |
| VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - dev | |
| jobs: | |
| preview-deployment: | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: Dev Preview | |
| url: https://redefine-preview.ohevan.com | |
| steps: | |
| - name: Checkout theme repository | |
| uses: actions/checkout@v6 | |
| with: | |
| path: 'theme' | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20.x' # Specify your required Node.js version | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v6 | |
| with: | |
| version: 10.29.3 | |
| - name: Clone Hexo site repository | |
| run: git clone https://github.com/EvanNotFound/redefine-demo.git hexo-site | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.x' # Ensure compatibility with Python 3.x | |
| - name: Install PyYAML | |
| run: pip install pyyaml | |
| - name: Enable Developer Mode in Config | |
| run: | | |
| echo "import yaml | |
| import logging | |
| # Set up logging | |
| logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') | |
| try: | |
| # Load YAML file | |
| with open('hexo-site/_config.redefine.yml', 'r') as file: | |
| config = yaml.safe_load(file) | |
| logging.info('YAML file loaded successfully.') | |
| # Modify the developer mode and CDN settings | |
| config['developer']['enable'] = True | |
| logging.info('Developer mode set to True.') | |
| config['cdn']['enable'] = False | |
| logging.info('CDN set to False.') | |
| # Save the modified YAML file | |
| with open('hexo-site/_config.redefine.yml', 'w') as file: | |
| yaml.safe_dump(config, file, default_flow_style=False, sort_keys=False) | |
| logging.info('YAML file saved with new settings.') | |
| except Exception as e: | |
| logging.error('An error occurred: {}'.format(e)) | |
| " > update_yaml.py | |
| python update_yaml.py | |
| - name: Move theme into Hexo site | |
| run: | | |
| mv theme hexo-site/themes/redefine | |
| - name: Build theme assets | |
| run: | | |
| cd hexo-site/themes/redefine | |
| pnpm install --frozen-lockfile | |
| pnpm run build | |
| - name: Install dependencies | |
| run: | | |
| cd hexo-site | |
| pnpm \ | |
| --config.only-built-dependencies=hexo-util \ | |
| --config.only-built-dependencies=nodejieba \ | |
| install --no-frozen-lockfile | |
| - name: Build Hexo | |
| run: | | |
| cd hexo-site | |
| pnpm remove hexo-theme-redefine | |
| pnpm run build | |
| - name: Change directory to hexo-site | |
| run: echo "HEXO_SITE_DIR=${{ github.workspace }}/hexo-site" >> $GITHUB_ENV | |
| # Install Vercel CLI first to avoid bug with next step | |
| - name: Install Vercel CLI | |
| run: pnpm add --global vercel@latest | |
| - name: Deploy to Vercel Action | |
| id: deploy-to-vercel | |
| uses: EvanNotFound/vercel-deployment-for-github-actions@v1.2.2 | |
| with: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} | |
| VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} | |
| WORKING_DIRECTORY: ${{ env.HEXO_SITE_DIR }} | |
| VERCEL_SCOPE: ${{ secrets.VERCEL_SCOPE }} | |
| PRODUCTION: false | |
| GITHUB_DEPLOYMENT: false | |
| DEPLOY_PR_FROM_FORK: true | |
| ALIAS_DOMAINS: | | |
| redefine-preview.ohevan.com | |
| redefine-preview.vercel.app | |
| redefine-preview-git-{SHA}.vercel.app | |
| PR_PREVIEW_DOMAIN: "redefine-preview-pr-{PR}.vercel.app" |