Skip to content

CI/CD

Taon supports 4 types of releases:

Manual Locally build/test and then publish to remote server ( npm or app store or taon cloud ).
Cloud Everything that Manual does, but triggered on remote on server.
Local Build and deploy to local repo, or special repo, or special branch.
Static pages Perfect for publishing stuff to github pages (or similar solutions)

than can be used to achieve proper CI/CD
( Continuous Integration (CI) and Continuous Delivery (CD) ).

Depending on:

  • type of project
  • type of artifacts that you want to produce
  • number of developers
  • size of codebase
  • security level

each release type may suit you better than the others.


✅ - DONE
⌛ - IN PROGRESS


Taon cli support following release artifacts:

npm lib and cli tool - Shared npm library with global cli tool.
The library code is shared across all other artifacts except docs webapp.

angular node app - Backend/frontend NodeJs/Angular app shared across
artifacts (In websql mode -> there is only frontend with backend inside browser).

vscode plugin - Visual Studio Code extension/plugin with backend from npm lib and cli tool

electron app - Electron app with angular node app as IPC `dfrontend/backend

mobile app - Ionic framework based mobile app with angular node app as frontend/backend.

docs webapp - Combined documentation: MkDocs + Compodoc + Storybook .

Manual Release

🚀 Purpose: release artifacts using cli on development machine

🚀 Purpose: A convenient way to check if the Cloud Release will work.

🚀 This release creates a config that is used later in the Cloud Release.

Artifact name Manual
npm lib and cli tool
(manual)
✅ - publish as normal package (project name as npm name)
✅ - publish as organization package
⌛ - handle public/private npm (login if needed), use .npmrc
⌛ - build option: publish only cli without lib code
⌛ - build option: minify/obscure library code file by file
⌛ - build option: (single one file) minify/obscure whole library/cli
angular node app
(manual)
✅ - build docker with router for NodeJs backend and Angular frontend
✅ - docker can be use with any docker management system
✅ - taon cloud handle start/stop/update/deployment of dockers/apps
✅ - release docs webapp to github_pages special branch:
vscode plugin
(manual)
⌛ - publish to azure when azure cloud cli available
⌛ - publish special website assets as new release
electron app
(manual)
⌛ - publish to store (ms store, mac app store, snap, flatpak)
⌛ - publish special website assets as new release
mobile app
(manual)
⌛ - publish to app store (play, app store, app gallery)
⌛ - publish special website assets as new release
docs webapp
(manual)
⌛ - publish special website assets documentation as new release
⌛ - release docs webapp to github_pages special branch:

Cloud Release

🚀 Trigger release on remote (or localhost) Taon Cloud instance

🚀 Cloud Release actually uses Manual Release with config on remote (or localhost) Taon Cloud

Artifact name Cloud
npm lib and cli tool
(cloud)
⌛ - trigger remote npm lib/cli publish
⌛ - trigger remote npm libraries chain publish
angular node app
(cloud)
⌛ - trigger remote build based on config
⌛ - release is bumping versions and deploying to servers
⌛ - release and deployment is a same thing here
vscode plugin
(cloud)
⌛ - trigger remote build/publish to azure
⌛ - trigger remote build/publish to special assets server
electron app
(cloud)
⌛ - trigger remote build/publish/deploy to application stores
mobile app
(cloud)
⌛ - trigger remote build/publish/deploy to application stores
docs webapp
(cloud)
⌛ - trigger remote build/publish/deploy to remote server website assets

Local/Repo Release

🚀 All released artifacts stored inside project repository

🚀 Perfect if you are starting project alone and you need
to somehow show your work/progress

Artifact name Local/Repo
npm lib and cli tool
(local/repo)
✅ - release lib and cli into:
repo-folder/local_release/npm-lib-and-cli-tool/project-name
angular node app
(local/repo)
⌛ - release docker images (dockers backend, frontend, routers etc.) to
repo-folder/local_release/angular-node-app/project-name
vscode plugin
(local/repo)
✅ - release *.vsix plugin file into:
repo-folder/local_release/vscode-plugin/project-name
electron app
(local/repo)
✅ - release app installer (or executable) into:
repo-folder/local_release/electron-app/(win/mac/linux)/project-name
mobile app
(local/repo)
⌛ - release .apk, .ipa app into:
repo-folder/local_release/mobile-app/(win/mac/linux)/project-name
docs webapp
(local/repo)
⌛ - release docs webapp into:
repo-folder/local_release/docs-webapp/(win/mac/linux)/project-name

Static Pages Release

Take advantage of github pages (or similar solution) in a best possible way.

🚀 Purpose: release any compiled/bundled artifact to static pages (free Github Pages)

🚀 Purpose: A convenient way to store artifacts with with versions

🚀 Perfect for storing open source apps/libs/docs

Artifact name Static Pages
npm lib and cli tool
(static-pages)
⌛ - publish zipped (also with source code) library/cli to
static_pages_branch/assets/npm-lib-and-cli-tool/version-X-X-X
⌛ - additionally bundled script for cli installation
angular node app
(static-pages)
✅ - publish angular app with WEBSQL backend to
static_pages_branch
vscode plugin
(static-pages)
⌛ - publish zipped (also with source code) vscode plugin to
static_pages_branch/assets/vscode-plugin/version-X-X-X/
electron app
(static-pages)
⌛ - publish zipped (also with source code) electron app installer to
static_pages_branch/assets/electron-app/version-X-X-X
mobile app
(static-pages)
⌛ - publish zipped (also with source code) mobile app installer to
static_pages_branch/assets/mobile-app/version-X-X-X
docs webapp
(static-pages)
✅ - publish documentation to
static_pages_branch/documentation