chore: Add deployment workflow for Nuxt free demo #1
This file contains 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: 🚀 Deploy - Demo | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
jobs: | |
deployment: | |
runs-on: ubuntu-latest | |
steps: | |
- name: ⚙️ Setup pnpm | |
uses: pnpm/action-setup@v4 | |
with: | |
version: 8 | |
- name: ⚙️ Set BRAND_NAME environment variable from repo name | |
run: echo BRAND_NAME=${{ github.event.repository.name }} | cut -d '-' -f1 >> $GITHUB_ENV | |
- name: ⬇️ Clone current repo under /<brand-name>/nuxt-free | |
uses: actions/checkout@v4 | |
with: | |
path: ${{ env.BRAND_NAME }}/nuxt-free | |
- name: ⬇️ Clone automation scripts repo under /automation-scripts | |
uses: actions/checkout@v4 | |
with: | |
repository: themeselection/automation-scripts | |
token: ${{ secrets.GH_PAT }} | |
path: automation-scripts | |
- name: ⬇️ Install packages in automation-scripts dir | |
working-directory: automation-scripts/vue | |
run: pnpm install | |
- name: ⚙️ Prepare free demo | |
working-directory: automation-scripts/vue | |
run: pnpm tsx src/templates/${{ env.BRAND_NAME }}/scripts/prepareNuxtFreeDemo.ts | |
- name: 📦 Generate demo | |
working-directory: ${{ env.BRAND_NAME }}/nuxt-free/typescript-version | |
run: pnpm i && pnpm generate | |
env: | |
NUXT_APP_BASE_URL: /${{ env.BRAND_NAME }}-vuetify-nuxtjs-admin-template-free/demo/ | |
- name: 🗄️ Ensure Dir on server | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.HOST }} | |
username: ${{ secrets.USERNAME }} | |
port: ${{ secrets.PORT }} | |
key: ${{ secrets.SSHKEY }} | |
script: | | |
mkdir -p ${{ secrets.PROD_DIR }} | |
- name: 🚀 Upload demo zip | |
uses: appleboy/scp-action@master | |
with: | |
host: ${{ secrets.HOST }} | |
username: ${{ secrets.USERNAME }} | |
port: ${{ secrets.PORT }} | |
key: ${{ secrets.SSHKEY }} | |
source: ${{ env.BRAND_NAME }}/nuxt-free/typescript-version/.output/public | |
target: ${{ secrets.PROD_DIR }} | |
strip_components: 5 | |
rm: true |