Submit Search
Upload
為 Node.js 專案打造專屬管家進行開發流程整合及健康檢測
•
6 likes
•
1,435 views
謝 宗穎
Follow
2016 CTJS conf 簡報,說明如何為 nodejs 專案建構持續整合流程
Read less
Read more
Software
Report
Share
Report
Share
1 of 53
Download now
Download to read offline
Recommended
中華電信 教育訓練
中華電信 教育訓練
謝 宗穎
JSDC 2015 - TDD 的開發哲學,以 Node.js 為例
JSDC 2015 - TDD 的開發哲學,以 Node.js 為例
謝 宗穎
JCConf 2015 workshop 動手玩 Java 專案建置工具
JCConf 2015 workshop 動手玩 Java 專案建置工具
謝 宗穎
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Fwdays
Евгений Жарков "React Native: Hurdle Race"
Евгений Жарков "React Native: Hurdle Race"
Fwdays
Live deployment, ci, drupal
Live deployment, ci, drupal
Andrii Podanenko
Continuous Delivery With Selenium Grid And Docker
Continuous Delivery With Selenium Grid And Docker
Barbara Gonzalez
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet
Recommended
中華電信 教育訓練
中華電信 教育訓練
謝 宗穎
JSDC 2015 - TDD 的開發哲學,以 Node.js 為例
JSDC 2015 - TDD 的開發哲學,以 Node.js 為例
謝 宗穎
JCConf 2015 workshop 動手玩 Java 專案建置工具
JCConf 2015 workshop 動手玩 Java 專案建置工具
謝 宗穎
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Fwdays
Евгений Жарков "React Native: Hurdle Race"
Евгений Жарков "React Native: Hurdle Race"
Fwdays
Live deployment, ci, drupal
Live deployment, ci, drupal
Andrii Podanenko
Continuous Delivery With Selenium Grid And Docker
Continuous Delivery With Selenium Grid And Docker
Barbara Gonzalez
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet
Modern Infrastructure from Scratch with Puppet
Modern Infrastructure from Scratch with Puppet
Puppet
Graphql usage
Graphql usage
Valentin Buryakov
Automated acceptance test
Automated acceptance test
Bryan Liu
Puppet in the Pipeline
Puppet in the Pipeline
Puppet
Lviv 2013 d7 vs d8
Lviv 2013 d7 vs d8
Andy Postnikov
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
Fwdays
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
Antons Kranga
[English][Test Girls] Zero to Hero: Start Test automation with Cypress
[English][Test Girls] Zero to Hero: Start Test automation with Cypress
Test Girls
Vagrant to-aws-flow
Vagrant to-aws-flow
Kimberly Macias
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
DevOps.com
Running JavaScript Efficiently in a Java World
Running JavaScript Efficiently in a Java World
irbull
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containers
inside-BigData.com
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOS
SQALab
CI/CD Using Ansible and Jenkins for Infrastructure
CI/CD Using Ansible and Jenkins for Infrastructure
Faisal Shaikh
Jenkins presentation
Jenkins presentation
Valentin Buryakov
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Hassan Muhammad
Grooving with Jenkins
Grooving with Jenkins
Anton Weiss
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Yoichi Kawasaki
Dockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber Example
Shashikant Jagtap
Cypress Automation
Cypress Automation
Susantha Pathirana
安小姐與詹先生的邂逅 Android + Jenkins
安小姐與詹先生的邂逅 Android + Jenkins
PRADA Hsiung
Google Cloud Platform 2014Q4
Google Cloud Platform 2014Q4
Simon Su
More Related Content
What's hot
Modern Infrastructure from Scratch with Puppet
Modern Infrastructure from Scratch with Puppet
Puppet
Graphql usage
Graphql usage
Valentin Buryakov
Automated acceptance test
Automated acceptance test
Bryan Liu
Puppet in the Pipeline
Puppet in the Pipeline
Puppet
Lviv 2013 d7 vs d8
Lviv 2013 d7 vs d8
Andy Postnikov
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
Fwdays
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
Antons Kranga
[English][Test Girls] Zero to Hero: Start Test automation with Cypress
[English][Test Girls] Zero to Hero: Start Test automation with Cypress
Test Girls
Vagrant to-aws-flow
Vagrant to-aws-flow
Kimberly Macias
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
DevOps.com
Running JavaScript Efficiently in a Java World
Running JavaScript Efficiently in a Java World
irbull
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containers
inside-BigData.com
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOS
SQALab
CI/CD Using Ansible and Jenkins for Infrastructure
CI/CD Using Ansible and Jenkins for Infrastructure
Faisal Shaikh
Jenkins presentation
Jenkins presentation
Valentin Buryakov
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Hassan Muhammad
Grooving with Jenkins
Grooving with Jenkins
Anton Weiss
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Yoichi Kawasaki
Dockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber Example
Shashikant Jagtap
Cypress Automation
Cypress Automation
Susantha Pathirana
What's hot
(20)
Modern Infrastructure from Scratch with Puppet
Modern Infrastructure from Scratch with Puppet
Graphql usage
Graphql usage
Automated acceptance test
Automated acceptance test
Puppet in the Pipeline
Puppet in the Pipeline
Lviv 2013 d7 vs d8
Lviv 2013 d7 vs d8
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
Java Day Kharkiv - Next-gen engineering with Docker and Kubernetes
[English][Test Girls] Zero to Hero: Start Test automation with Cypress
[English][Test Girls] Zero to Hero: Start Test automation with Cypress
Vagrant to-aws-flow
Vagrant to-aws-flow
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
Running JavaScript Efficiently in a Java World
Running JavaScript Efficiently in a Java World
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containers
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOS
CI/CD Using Ansible and Jenkins for Infrastructure
CI/CD Using Ansible and Jenkins for Infrastructure
Jenkins presentation
Jenkins presentation
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Grooving with Jenkins
Grooving with Jenkins
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Dockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber Example
Cypress Automation
Cypress Automation
Viewers also liked
安小姐與詹先生的邂逅 Android + Jenkins
安小姐與詹先生的邂逅 Android + Jenkins
PRADA Hsiung
Google Cloud Platform 2014Q4
Google Cloud Platform 2014Q4
Simon Su
Developer team review of 2014
Developer team review of 2014
Caesar Chi
GCPUG.TW - 2016活動討論
GCPUG.TW - 2016活動討論
Simon Su
技術單兵作戰及團隊開發流程差異
技術單兵作戰及團隊開發流程差異
Caesar Chi
中原大學 Shift to cloud
中原大學 Shift to cloud
Simon Su
html5 & phonegap
html5 & phonegap
Caesar Chi
GCPUG.TW - 2015活動回顧
GCPUG.TW - 2015活動回顧
Simon Su
JCConf 2015 - Google Dataflow 在雲端大資料處理的應用
JCConf 2015 - Google Dataflow 在雲端大資料處理的應用
Simon Su
Web development, from git flow to github flow
Web development, from git flow to github flow
Caesar Chi
Docker with Cloud Service GCPUG
Docker with Cloud Service GCPUG
Caesar Chi
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
Simon Su
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
Simon Su
Brocade - Stingray Application Firewall
Brocade - Stingray Application Firewall
Simon Su
Google IO - When Bigquery meeet Node.js
Google IO - When Bigquery meeet Node.js
Simon Su
GCPUG meetup 201610 - Dataflow Introduction
GCPUG meetup 201610 - Dataflow Introduction
Simon Su
遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016
Caesar Chi
從失敗中學習打造技術團隊
從失敗中學習打造技術團隊
Caesar Chi
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析
Simon Su
Introduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flow
Caesar Chi
Viewers also liked
(20)
安小姐與詹先生的邂逅 Android + Jenkins
安小姐與詹先生的邂逅 Android + Jenkins
Google Cloud Platform 2014Q4
Google Cloud Platform 2014Q4
Developer team review of 2014
Developer team review of 2014
GCPUG.TW - 2016活動討論
GCPUG.TW - 2016活動討論
技術單兵作戰及團隊開發流程差異
技術單兵作戰及團隊開發流程差異
中原大學 Shift to cloud
中原大學 Shift to cloud
html5 & phonegap
html5 & phonegap
GCPUG.TW - 2015活動回顧
GCPUG.TW - 2015活動回顧
JCConf 2015 - Google Dataflow 在雲端大資料處理的應用
JCConf 2015 - Google Dataflow 在雲端大資料處理的應用
Web development, from git flow to github flow
Web development, from git flow to github flow
Docker with Cloud Service GCPUG
Docker with Cloud Service GCPUG
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
Brocade - Stingray Application Firewall
Brocade - Stingray Application Firewall
Google IO - When Bigquery meeet Node.js
Google IO - When Bigquery meeet Node.js
GCPUG meetup 201610 - Dataflow Introduction
GCPUG meetup 201610 - Dataflow Introduction
遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016
從失敗中學習打造技術團隊
從失敗中學習打造技術團隊
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析
Introduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flow
Similar to 為 Node.js 專案打造專屬管家進行開發流程整合及健康檢測
How and why i roll my own node.js framework
How and why i roll my own node.js framework
Ben Lin
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
tomcopeland
Laravel5 Introduction and essentials
Laravel5 Introduction and essentials
Pramod Kadam
Toolbox of a Ruby Team
Toolbox of a Ruby Team
Arto Artnik
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Mike Subelsky
Easy Cloud Native Transformation using HashiCorp Nomad
Easy Cloud Native Transformation using HashiCorp Nomad
Bram Vogelaar
Introducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.js
Richard Rodger
20120816 nodejsdublin
20120816 nodejsdublin
Richard Rodger
Rapid prototyping and easy testing with ember cli mirage
Rapid prototyping and easy testing with ember cli mirage
Krzysztof Bialek
Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran Mizrahi
Ran Mizrahi
JavaScript Growing Up
JavaScript Growing Up
David Padbury
Writing robust Node.js applications
Writing robust Node.js applications
Tom Croucher
Node.js Patterns for Discerning Developers
Node.js Patterns for Discerning Developers
cacois
Infrastructure = code - 1 year later
Infrastructure = code - 1 year later
Christian Ortner
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Igor Bronovskyy
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
Chris Bailey
Introduction to REST API with Node.js
Introduction to REST API with Node.js
Yoann Gotthilf
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lindsay Holmwood
Lecture: Webpack 4
Lecture: Webpack 4
Sergei Iastrebov
Grunt & Front-end Workflow
Grunt & Front-end Workflow
Pagepro
Similar to 為 Node.js 專案打造專屬管家進行開發流程整合及健康檢測
(20)
How and why i roll my own node.js framework
How and why i roll my own node.js framework
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
Laravel5 Introduction and essentials
Laravel5 Introduction and essentials
Toolbox of a Ruby Team
Toolbox of a Ruby Team
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Easy Cloud Native Transformation using HashiCorp Nomad
Easy Cloud Native Transformation using HashiCorp Nomad
Introducing the Seneca MVP framework for Node.js
Introducing the Seneca MVP framework for Node.js
20120816 nodejsdublin
20120816 nodejsdublin
Rapid prototyping and easy testing with ember cli mirage
Rapid prototyping and easy testing with ember cli mirage
Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran Mizrahi
JavaScript Growing Up
JavaScript Growing Up
Writing robust Node.js applications
Writing robust Node.js applications
Node.js Patterns for Discerning Developers
Node.js Patterns for Discerning Developers
Infrastructure = code - 1 year later
Infrastructure = code - 1 year later
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
Introduction to REST API with Node.js
Introduction to REST API with Node.js
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lecture: Webpack 4
Lecture: Webpack 4
Grunt & Front-end Workflow
Grunt & Front-end Workflow
More from 謝 宗穎
DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學
謝 宗穎
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
謝 宗穎
Scrum 開發流程導入經驗分享
Scrum 開發流程導入經驗分享
謝 宗穎
TDD 實戰
TDD 實戰
謝 宗穎
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
謝 宗穎
Sails.js Model / ORM introduce
Sails.js Model / ORM introduce
謝 宗穎
More from 謝 宗穎
(6)
DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Scrum 開發流程導入經驗分享
Scrum 開發流程導入經驗分享
TDD 實戰
TDD 實戰
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
Sails.js Model / ORM introduce
Sails.js Model / ORM introduce
Recently uploaded
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
Large Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
rajkumar669520
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
Alluxio, Inc.
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
Alluxio, Inc.
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
Alluxio, Inc.
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
Recently uploaded
(20)
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Large Language Models and the End of Programming
Large Language Models and the End of Programming
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
為 Node.js 專案打造專屬管家進行開發流程整合及健康檢測
1.
NODE.JS CT
2.
SPOOKY trunk.studio trunk.studio/blog
3.
4.
•
5.
•
6.
•
7.
• • Continuous Integration •
8.
9.
10.
11.
12.
13.
= /
14.
= /
15.
16.
DevOps
17.
= /
18.
19.
20.
21.
Continuous Improvement
22.
23.
24.
Sequelize module.exports = { attributes:
{ username: { type: Sequelize.STRING, allowNull: false }, email: { type: Sequelize.STRING, allowNull: false }, age: { type: Sequelize.INTEGER } }, associations: function() { User.hasMany(Post); User.hasMany(Passport); }, };
25.
26.
FROM mhart/alpine-node:4 RUN apk
add --update git RUN apk add --update build-base libffi-dev ruby ruby-dev && gem install sass compass --no-ri --no-rdoc && apk del build-base libffi-dev ruby-dev && rm -rf /var/cache/apk/* Dockerfile
27.
Edge of Tomorrow
28.
it('register user should
success.', async (done) => { try { let newUser = { username: 'newUser', email: 'newUser@gmail.com', password: 'newUser' } let result = await request(sails.hooks.http.app) .post('/auth/local/register').send(newUser); let {email} = newUser; let checkUser = await User.findOne({ where: {email}, include: Passport} ); checkUser.email.should.be.equal(newUser.email); result.status.should.be.equal(302); result.headers.location.should.be.equal('/'); done(); } catch (e) { done(e); } }); Mocha
29.
30.
"scripts": { "debug": "node
debug app.js", "test": "grunt test", "test-junit": "mocha test --reporter mocha-junit-reporter", "build": "npm i && node_modules/grunt-cli/bin/grunt build", "start": "node app.js", "pm2-start": "pm2 start -f app.js --name 'sailsSample'", "pm2-stop": "pm2 stop sailsSample", "start-prod": "NODE_ENV=production node app.js", "build-prod": "grunt prod", "build-docker-env": "docker build -t agileworks/sails_sample_env dockers/node", "build-docker-prod-image": "docker build -t agileworks/sails_sample_prod .", } Package.json
31.
deploy-production-docker: - ssh jenkins@localhost
docker rm -f sails_sample_prod ssh jenkins@localhost docker run -d --name sails_sample_prod -p 8800:1337 agileworks/sails_sample_prod deploy-production-legacy: ssh jenkins@localhost mkdir -p ~/deploy/production scp sailsSampleProd.tar.gz jenkins@localhost:~/deploy/production tar -C ~/deploy/production/ -vxf ~/deploy/production/ sailsSampleProd.tar.gz package-production: - rm sailsSampleProd.tar.gz tar cvf ./sailsSampleProd.tar.gz ./ restart-production: - ssh jenkins@localhost cd ~/deploy/production && pm2 delete production ssh jenkins@localhost cd ~/deploy/production && NODE_ENV=production pm2 start -f app.js --name 'production' Makefile
32.
33.
Jenkins 2 Pipeline
34.
node { stage 'checkout
project' git url: 'https://github.com/TrunkWorkshop/sailsSample.git' stage 'check env' sh "node -v" stage 'install pm2' sh "npm install pm2 -g" stage 'build project' sh "npm install" stage 'test project' sh "npm run test-junit" step([$class: 'JUnitResultArchiver', testResults: 'test-results.xml']) }
35.
node { stage 'run
project' sh "npm run pm2-start" try{ stage 'Approve, go production' def url = 'http://localhost:1337/' input message: "$url look good? ", ok: "Deploy to production" }finally{ sh "npm run pm2-stop" } stage 'package production' sh "make package-production" step([$class: 'ArtifactArchiver', artifacts: 'prod.tar.gz']) stage 'deploy production' sh "make deploy-production-legacy" stage 'restart production' sh "make restart-production" }
36.
37.
CI / CD 有效溝通 累積開發能量 快速迭代驗證 永生
38.
39.
40.
Checking
41.
42.
Cobertura
43.
Integration
44.
Pipeline
45.
Pull Request
46.
47.
Connects
48.
Slack + Github
+ Jenkins
49.
50.
51.
52.
53.
&
Download now