Skip to content

ci: update workflows config. #731

ci: update workflows config.

ci: update workflows config. #731

Workflow file for this run

name: Build KKT & Example
on:
push:
branches:
- master
env:
# SKIP_PREFLIGHT_CHECK: true
CI: false
jobs:
windows:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
registry-url: 'https://registry.npmjs.org'
- name: Look Changelog
uses: jaywcjlove/changelog-generator@main
with:
filter-author: (小弟调调™|Renovate Bot|renovate-bot)
filter: '[R|r]elease[d]\s+[v|V]\d(\.\d+){0,2}'
- run: npm install
- run: npm run build
- run: npm install
- name: kkt core
working-directory: core
run: npm run build
- name: example @template/basic
working-directory: example/basic
run: npm run build && npm run coverage
- name: example @template/basic-entry
working-directory: example/basic-entry
run: npm run build
- name: example @template/chrome-plugin
working-directory: example/chrome-plugin
run: npm run build && npm run coverage
- name: example @template/electron
run: npm run build && npm run build:main
working-directory: example/electron
- name: example @template/less
working-directory: example/less
run: npm run build
- name: example @template/markdown
working-directory: example/markdown
run: npm run build
- name: example @template/react-component-tsx
working-directory: example/react-component-tsx
run: |
npm run build
npm run doc
npm run coverage
# The following changes are being made to your tsconfig.json file:
# - compilerOptions.noEmit must be true
git checkout -f ./tsconfig.json
- name: example @template/react-router
working-directory: example/react-router
run: npm run build
- name: example @template/react-router-ts
working-directory: example/react-router-ts
run: npm run build
- name: example @template/scss
working-directory: example/scss
run: npm run build
- name: example @template/stylus
working-directory: example/stylus
run: npm run build
- name: example @template/typescript
working-directory: example/typescript
run: npm run build && npm run coverage
- name: example @template/uiw
working-directory: example/uiw
run: npm run build
build:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
registry-url: 'https://registry.npmjs.org'
- run: npm install
- run: npm run build
- run: npm install
- name: kkt core
working-directory: core
run: npm run build
- run: mkdir -p build
- name: Converts ncc Markdown to HTML
uses: jaywcjlove/markdown-to-html-cli@main
with:
github-corners: https://github.com/kktjs/ncc
source: packages/ncc/README.md
output: build/ncc.html
- name: Create idoc config.
working-directory: core
run: |
cat > idoc.yml << EOF
site: "KKT {{version}}"
menus:
KKT: index.html
NCC: https://kktjs.github.io/ncc/
Create-KKT: https://kktjs.github.io/create-kkt/
Zip: https://kktjs.github.io/zip/
EOF
- run: npm install idoc@1 -g
- run: idoc
working-directory: core
- run: cp -rp core/dist/* ./build
- name: Generate Contributors Images
uses: jaywcjlove/github-action-contributors@main
with:
filter-author: (renovate\[bot\]|renovate-bot|dependabot\[bot\])
output: build/CONTRIBUTORS.svg
avatarSize: 42
- name: example @template/basic
working-directory: example/basic
run: npm run build && npm run coverage
- name: example @template/basic-entry
working-directory: example/basic-entry
run: npm run build
- name: example @template/chrome-plugin
working-directory: example/chrome-plugin
run: npm run build && npm run coverage
- name: example @template/electron
run: npm run build && npm run build:main
working-directory: example/electron
- name: example @template/less
working-directory: example/less
run: npm run build
- name: example @template/markdown
working-directory: example/markdown
run: npm run build
- name: example @template/react-component-tsx
working-directory: example/react-component-tsx
run: |
npm run build
npm run doc
npm run coverage
# The following changes are being made to your tsconfig.json file:
# - compilerOptions.noEmit must be true
git checkout -f ./tsconfig.json
- name: example @template/react-router
working-directory: example/react-router
run: npm run build
- name: example @template/react-router-ts
working-directory: example/react-router-ts
run: npm run build
- name: example @template/scss
working-directory: example/scss
run: npm run build
- name: example @template/stylus
working-directory: example/stylus
run: npm run build
- name: example @template/typescript
working-directory: example/typescript
run: npm run build && npm run coverage
- name: example @template/uiw
working-directory: example/uiw
run: npm run build
- run: mkdir -p zip
- name: Compress basic Example.
run: zip -r -y basic.zip . -x "node_modules/*" -x "build/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/basic
- run: cp -rp example/basic/basic.zip ./zip
- name: Compress basic-entry Example.
run: zip -r -y basic-entry.zip . -x "node_modules/*" -x "build/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/basic-entry
- run: cp -rp example/basic-entry/basic-entry.zip ./zip
- name: Compress chrome-plugin Example.
run: zip -r -y chrome-plugin.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/chrome-plugin
- run: cp -rp example/chrome-plugin/chrome-plugin.zip ./zip
- name: Compress electron Example.
run: zip -r -y electron.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/electron
- run: cp -rp example/electron/electron.zip ./zip
- name: Compress less Example.
run: zip -r -y less.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/less
- run: cp -rp example/less/less.zip ./zip
- name: Compress less Example.
run: zip -r -y less.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/less
- run: cp -rp example/less/less.zip ./zip
- name: Compress markdown Example.
run: zip -r -y markdown.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/markdown
- run: cp -rp example/markdown/markdown.zip ./zip
- name: Compress react-component-tsx Example.
run: zip -r -y react-component-tsx.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "lib/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/react-component-tsx
- run: cp -rp example/react-component-tsx/react-component-tsx.zip ./zip
- name: Compress react-router Example.
run: zip -r -y react-router.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/react-router
- run: cp -rp example/react-router/react-router.zip ./zip
- name: Compress react-router-ts Example.
run: zip -r -y react-router-ts.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/react-router-ts
- run: cp -rp example/react-router-ts/react-router-ts.zip ./zip
- name: Compress scss Example.
run: zip -r -y scss.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/scss
- run: cp -rp example/scss/scss.zip ./zip
- name: Compress stylus Example.
run: zip -r -y stylus.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/stylus
- run: cp -rp example/stylus/stylus.zip ./zip
- name: Compress typescript Example.
run: zip -r -y typescript.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/typescript
- run: cp -rp example/typescript/typescript.zip ./zip
- name: Compress uiw Example.
run: zip -r -y uiw.zip . -x "node_modules/*" -x "build/*" -x "dist/*" -x "coverage/*" -x ".eslintcache" -x "sandbox.config.json"
working-directory: example/uiw
- run: cp -rp example/uiw/uiw.zip ./zip
- name: get tag version
id: tag_version
uses: jaywcjlove/changelog-generator@main
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
with:
commit_message: ${{steps.tag_version.outputs.tag}} ${{ github.event.head_commit.message }}
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build
- name: Is a tag created auto?
id: create_tag
uses: jaywcjlove/create-tag-action@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
package-path: ./core/package.json
- name: Generate Changelog
id: changelog
uses: jaywcjlove/changelog-generator@main
if: steps.create_tag.outputs.successful
with:
head-ref: ${{ steps.create_tag.outputs.version }}
filter-author: (小弟调调™|Renovate Bot|renovate-bot)
filter: '[R|r]elease[d]\s+[v|V]\d(\.\d+){0,2}'
- name: Create Release
uses: ncipollo/release-action@v1
if: steps.create_tag.outputs.successful
with:
allowUpdates: true
token: ${{ secrets.GITHUB_TOKEN }}
name: ${{ steps.changelog.outputs.tag }}
tag: ${{ steps.changelog.outputs.tag }}
body: |
[![](https://img.shields.io/badge/Open%20in-unpkg-blue)](https://uiwjs.github.io/npm-unpkg/#/pkg/kkt@${{steps.changelog.outputs.version}}/file/README.md) [![npm version](https://img.shields.io/npm/v/kkt.svg)](https://www.npmjs.com/package/kkt)
Documentation ${{ steps.changelog.outputs.tag }}: https://raw.githack.com/kktjs/kkt/${{ steps.changelog.outputs.gh-pages-short-hash }}/index.html
Comparing Changes: ${{ steps.changelog.outputs.compareurl }}
```bash
npm i kkt@${{steps.changelog.outputs.version}}
```
${{ steps.changelog.outputs.changelog }}
- run: git status
- name: 📦 kkt publish to NPM
run: npm publish --access public --provenance
working-directory: core
continue-on-error: true
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
- name: 📦 @kkt/less-modules publish to NPM
run: npm publish --access public --provenance
working-directory: packages/less-modules
continue-on-error: true
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
- name: 📦 @kkt/raw-modules publish to NPM
run: npm publish --access public --provenance
working-directory: packages/raw-modules
continue-on-error: true
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
- name: 📦 @kkt/react-library publish to NPM
run: npm publish --access public --provenance
working-directory: packages/react-library
continue-on-error: true
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
- name: 📦 @kkt/scope-plugin-options publish to NPM
run: npm publish --access public --provenance
working-directory: packages/scope-plugin-options
continue-on-error: true
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
- name: 📦 @kkt/stylus-modules publish to NPM
run: npm publish --access public --provenance
working-directory: packages/stylus-modules
continue-on-error: true
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
- name: 📦 @kkt/resolve-fallback publish to NPM
run: npm publish --access public --provenance
working-directory: packages/resolve-fallback
continue-on-error: true
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
- name: Compress uiw Example.
working-directory: zip
run: |
ICON='<svg viewBox="0 0 1024 1024" width="14" height="14"><path d="M192 384h640a42.666667 42.666667 0 0 1 42.666667 42.666667v362.666666a42.666667 42.666667 0 0 1-42.666667 42.666667H192v106.666667a21.333333 21.333333 0 0 0 21.333333 21.333333h725.333334a21.333333 21.333333 0 0 0 21.333333-21.333333V308.821333L949.909333 298.666667h-126.528A98.048 98.048 0 0 1 725.333333 200.618667V72.661333L716.714667 64H213.333333a21.333333 21.333333 0 0 0-21.333333 21.333333v298.666667zM128 832H42.666667a42.666667 42.666667 0 0 1-42.666667-42.666667V426.666667a42.666667 42.666667 0 0 1 42.666667-42.666667h85.333333V85.333333a85.333333 85.333333 0 0 1 85.333333-85.333333h530.026667L1024 282.453333V938.666667a85.333333 85.333333 0 0 1-85.333333 85.333333H213.333333a85.333333 85.333333 0 0 1-85.333333-85.333333v-106.666667z m32.661333-359.509333v38.4h147.072l-158.592 200.448V746.666667h226.176v-38.4H207.893333l158.208-200.064v-35.712h-205.44z m251.136 0V746.666667h44.928V472.490667h-44.928z m98.688 0V746.666667h44.928v-105.216h67.968c66.816 0 100.224-28.416 100.224-84.864 0-56.064-33.408-84.096-99.456-84.096h-113.664z m44.928 38.4h65.28c19.584 0 34.176 3.456 43.392 10.752 9.216 6.912 14.208 18.432 14.208 34.944 0 16.512-4.608 28.416-13.824 35.712-9.216 6.912-23.808 10.752-43.776 10.752h-65.28v-92.16z" fill="currentColor"></path></svg> '
CodeSandbox='https://codesandbox.io/s/github/kktjs/kkt/tree/master/example/'
GITHUBREADME='https://github.com/kktjs/kkt/tree/master/example/'
VERSION_NUMBER=$(echo "${{ steps.create_tag.outputs.versionNumber || steps.create_tag.outputs.version || steps.create_tag.outputs.preversion }}")
cat > index.html << EOF
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="https://github.githubassets.com/favicon.ico">
<title>KKT Example Zip Files</title>
<style type="text/css">
body, html { height: 100%; font-size: 12px; font-family: Avenir Next,PingFang SC,Hiragino Sans GB,Droid Sans Fallback,Microsoft YaHei,sans-serif; }
h1 { font-size: 2.6rem; font-weight: 300; }
h1 sup { color: #7b7b7b; font-size: 14px; position: absolute; font-weight: normal;}
a:hover { color: #0949d1; }
.header { position: relative; width: 100%; height: 60%; text-align: center; }
.list { border-spacing: 0; border-collapse: collapse; margin: 0 auto 0 auto;}
.list td { padding: 3px 10px; line-height: 21px; }
.list td svg { display: block; }
.list tr:hover { background-color: #f1f1f1; }
.links { text-align: center; padding: 50px 0 0 0; font-size: 14px; }
.footer { color: #696969; text-align: center; padding: 10px 0 90px 0; }
.footer a { padding: 10px 0 90px 0; color: #696969 }
</style>
</head>
<body>
<table class="header"> <tbody> <tr> <td>
<h1>KKT Example Zip Files<sup>v$VERSION_NUMBER</sup></h1>
</td> </tr> </tbody> </table>
<table class="list">
<tbody>
$(for file in $(ls *.zip); do
echo "<tr>"
echo "<td>${ICON}</td>"
echo "<td><a href=\"${file}\">$file</a></td>"
echo "<td>"
if [[ "$file" != "electron.zip" && "$file" != "chrome-plugin.zip" ]]; then
echo "<a target=\"__blank\" href=\"$CodeSandbox${file//.zip/}\">Open in CodeSandbox</a>"
else
echo ' -'
fi;
echo "</td>"
echo "<td><a target=\"__blank\" href=\"$GITHUBREADME${file//.zip/}\">Document</a></td>"
echo "</tr>"
done)
</tbody>
</table>
<div class="links">
<a target="__blank" href="https://github.com/kktjs/kkt">GitHub</a> ·
<a target="__blank" href="https://github.com/kktjs/kkt/issues">Feedback</a> ·
<a target="__blank" href="https://github.com/kktjs/create-kkt">Create KKT Project</a> ·
<a target="__blank" href="https://github.com/kktjs/kkt-ssr">KKT SSR</a> ·
<a target="__blank" href="https://github.com/kktjs/kkt/tree/master/packages/nccr">NCC</a>
</div>
<div class="footer">
Licensed under MIT. (Yes it's free and open-sourced)
<div>
Created By <a target="__blank" href="https://github.com/jaywcjlove">小弟调调™</a>
</div>
</div>
</body></html>
EOF
- name: Upload *.zip Files
uses: peaceiris/actions-gh-pages@v4
with:
commit_message: ${{steps.tag_version.outputs.tag}} ${{ github.event.head_commit.message }}
personal_token: ${{ secrets.PERSONAL_TOKEN_KKT }}
external_repository: kktjs/zip
force_orphan: true
publish_branch: gh-pages
publish_dir: ./zip
- name: Upload *.zip Files
uses: peaceiris/actions-gh-pages@v4
with:
commit_message: ${{steps.tag_version.outputs.tag}} ${{ github.event.head_commit.message }}
personal_token: ${{ secrets.PERSONAL_TOKEN_KKT }}
external_repository: kktjs/zip
force_orphan: true
publish_branch: v${{ steps.create_tag.outputs.majorVersion }}
publish_dir: ./zip