Merge pull request #112 from abernier/patch-2 #123
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 Static Files | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
docs: | |
uses: pmndrs/docs/.github/workflows/build.yml@v1 | |
with: | |
mdx: './docs' | |
libname: 'uikit' | |
base_path: '/uikit/docs' | |
icon: '🎨' | |
home_redirect: '/getting-started/introduction' | |
fonts: | |
env: | |
GOOGLE_FONTS_API_KEY: ${{ secrets.GOOGLE_FONTS_API_KEY }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Font Forge | |
run: sudo apt-get install -y fontforge; | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- uses: pnpm/action-setup@v2 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: true | |
# Fonts | |
- name: Make Dist Dir | |
working-directory: ./packages/fonts | |
run: mkdir dist | |
# Inter | |
- name: Generate Inter Light | |
working-directory: ./packages/fonts | |
run: | | |
node download.js "Inter" 300 | |
fontforge -lang=ff -c 'Open($1); SelectAll(); RemoveOverlap(); Generate($2)' font.ttf inter-light.ttf | |
pnpm msdf-bmfont -f json inter-light.ttf -i charset.txt -m 256,512 -o dist/inter-light -s 48 | |
- name: Generate Inter Normal | |
working-directory: ./packages/fonts | |
run: | | |
node download.js "Inter" 400 | |
fontforge -lang=ff -c 'Open($1); SelectAll(); RemoveOverlap(); Generate($2)' font.ttf inter-normal.ttf | |
pnpm msdf-bmfont -f json inter-normal.ttf -i charset.txt -m 256,512 -o dist/inter-normal -s 48 | |
- name: Generate Inter Medium | |
working-directory: ./packages/fonts | |
run: | | |
node download.js "Inter" 500 | |
fontforge -lang=ff -c 'Open($1); SelectAll(); RemoveOverlap(); Generate($2)' font.ttf inter-medium.ttf | |
pnpm msdf-bmfont -f json inter-medium.ttf -i charset.txt -m 256,512 -o dist/inter-medium -s 48 | |
- name: Generate Inter Semi Bold | |
working-directory: ./packages/fonts | |
run: | | |
node download.js "Inter" 600 | |
fontforge -lang=ff -c 'Open($1); SelectAll(); RemoveOverlap(); Generate($2)' font.ttf inter-semi-bold.ttf | |
pnpm msdf-bmfont -f json inter-semi-bold.ttf -i charset.txt -m 256,512 -o dist/inter-semi-bold -s 48 | |
- name: Generate Inter Bold | |
working-directory: ./packages/fonts | |
run: | | |
node download.js "Inter" 700 | |
fontforge -lang=ff -c 'Open($1); SelectAll(); RemoveOverlap(); Generate($2)' font.ttf inter-bold.ttf | |
pnpm msdf-bmfont -f json inter-bold.ttf -i charset.txt -m 256,512 -o dist/inter-bold -s 48 | |
- name: Convert to Webp | |
working-directory: ./packages/fonts | |
run: pnpm sharp --lossless -i dist/*.png -o dist/ -f webp | |
- name: Replace file png files | |
working-directory: ./packages/fonts | |
run: | | |
sed -i 's/png/webp/g' dist/*.json | |
rm dist/*.png | |
- name: Copy font files | |
run: | | |
mkdir -p public/fonts | |
cp ./packages/fonts/dist/* ./public/fonts | |
cp ./packages/fonts/LICENSE public/fonts/LICENSE | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: fonts | |
path: public/fonts | |
examples: | |
env: | |
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- uses: pnpm/action-setup@v2 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: true | |
# Examples | |
- name: Building Examples | |
run: | | |
pnpm -r convert | |
pnpm -r generate | |
pnpm -r build | |
- name: Copy Examples | |
run: | | |
mkdir -p public/examples/apfel | |
mkdir -p public/examples/card | |
mkdir -p public/examples/dashboard | |
mkdir -p public/examples/default | |
mkdir -p public/examples/lucide | |
mkdir -p public/examples/market | |
mkdir -p public/examples/auth | |
cp -r ./examples/apfel/dist/* ./public/examples/apfel | |
cp -r ./examples/card/dist/* ./public/examples/card | |
cp -r ./examples/dashboard/dist/* ./public/examples/dashboard | |
cp -r ./examples/default/dist/* ./public/examples/default | |
cp -r ./examples/lucide/dist/* ./public/examples/lucide | |
cp -r ./examples/market/dist/* ./public/examples/market | |
cp -r ./examples/auth/dist/* ./public/examples/auth | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: examples | |
path: public/examples | |
# Deploy Apps to Vercel | |
- name: Pull Vercel Environment Information | |
working-directory: ./apps/html23 | |
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} | |
- name: Build Project Artifacts | |
working-directory: ./apps/html23 | |
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} | |
- name: Deploy Project Artifacts to Vercel | |
working-directory: ./apps/html23 | |
run: vercel deploy --prod --prebuilt --token=${{ secrets.VERCEL_TOKEN }} | |
bundle-artifacts: | |
runs-on: ubuntu-latest | |
needs: | |
- docs | |
- examples | |
- fonts | |
steps: | |
- name: Download Fonts Artifiact | |
uses: actions/download-artifact@v4 | |
with: | |
name: fonts | |
path: ./fonts | |
- name: Download Examples Artifiact | |
uses: actions/download-artifact@v4 | |
with: | |
name: examples | |
path: ./examples | |
- name: Download Docs Artifiact | |
uses: actions/download-artifact@v4 | |
with: | |
name: github-pages | |
path: ./docs | |
- name: Extract Docs | |
run: tar -xf ./docs/artifact.tar -C ./docs/ | |
- name: Create deploy.tar | |
run: tar -cf deploy.tar ./* | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: deploy | |
path: ./deploy.tar | |
deploy: | |
needs: bundle-artifacts | |
runs-on: ubuntu-latest | |
permissions: | |
pages: write # to deploy to Pages | |
id-token: write # to verify the deployment originates from an appropriate source | |
# Deploy to the github-pages environment | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- id: deployment | |
uses: actions/deploy-pages@v4 | |
with: | |
artifact_name: deploy | |