Chuyển đến nội dung chính

Bài đăng

Hiển thị các bài đăng có nhãn Build and Deploy

Thiết lập CI/CD cho ASP.NET Core trên IIS với GitHub Actions: Build, Test, Deploy và Quản lý Secrets

Ở nhiều dự án ASP.NET Core chạy trên IIS, quy trình deploy thường bắt đầu khá đơn giản: Publish từ Visual Studio Remote Desktop vào server Copy đè file Restart IIS Cách làm này ổn khi dự án còn nhỏ. Tuy nhiên khi số lần release tăng lên, việc deploy thủ công bắt đầu xuất hiện nhiều vấn đề: Dễ quên bước Khó rollback Khó truy vết lỗi Mất thời gian khi release nhiều lần trong ngày Trong bài viết này, mình sẽ cấu hình một pipeline CI/CD bằng GitHub Actions cho ASP.NET Core chạy trên IIS với ba giai đoạn riêng biệt: flowchart TD A[Build] --> B[Test] B --> C[Deploy] Pipeline sẽ tự động: Build source code Chạy Unit Test Publish artifact Thay thế Connection String bằng GitHub Secrets Deploy lên IIS thông qua MSDeploy Kiến trúc Pipeline Thay vì đặt toàn bộ logic vào một job duy nhất, mình tách pipeline thành ba job: Job Mục đích Build Restore, Build và Publish Test Chạy Unit Test Deploy Deploy lên IIS Luồng hoạt động:...

ARM Template

ARM là gì? Azure Resource Manager (ARM) là một dịch vụ quản lý tài nguyên của Microsoft Azure. Nó là một framework cho phép bạn triển khai và quản lý tài nguyên trong môi trường Azure. ARM cung cấp một cách thức đơn giản và linh hoạt để triển khai và quản lý các tài nguyên của bạn trong Azure, từ máy ảo và dịch vụ lưu trữ đến các tài nguyên mạng và các thành phần khác. Declarative Programming là gì? Declarative programming là mô hình lập trình trong đó lập trình viên chỉ định kết quả mong muốn, thay vì chỉ định các bước cụ thể để đạt được kết quả đó. Mô hình này thường được sử dụng để viết các chương trình có logic đơn giản, hoặc các chương trình cần được tối ưu hóa về hiệu suất. Ví dụ: Với cách viết code thông thường (Imperative programming) let array = [1, 2, 3, 4, 5, 6] var reduced = 0 var filtered = [] for element in array { reduced += element if element % 2 == 1 { filtered.append(element) } } Viết theo kiểu Declarative Progrmming let array = [1, 2, 3, 4, 5, 6] let numb...

Sử dụng Gulp trong Visual Studio

Trong bài viết này, mình sẽ hướng dẫn các bạn cách sử dụng cơ bản công cụ Gulp trong môi trường command line và trong Visual Studio. Mình tình cơ biết Gulp khi xem framework Simplcommerce Gulp là gì? Gulp là một công cụ giúp bạn tự động hóa nhiều task (nhiệm vụ) trong quá trình phát triển web. Có rất nhiều tác vụ khi build 1 website: Minify js, css, copy file, xóa file,… Cài đặt Gulp Đầu tiên bạn cài đặt NodeJs. Sau đó mở cmd lên, và sử dụng lệnh sau: npm install gulp –g Các thành phần chính của Gulp Để chạy được gulp cần một file gulpfile.js trong đó có chứa các thành phần chính là: gulp.task, gulp.src, gulp.dest, gulp.watch. Định nghĩa 1 task gulp.task('task-name', function() { // Stuff here }); Các hàm trong Gulp là các hàm async, vì vậy bạn cần viết thêm 1 phương thức để lắng nghe sự kiện kết thúc. Bạn có thể tham khảo thêm tại: https://gulpjs.com/docs/en/getting-started/async-completion Có 2 cách đơn giản nhất: Trả về 1 stream const { src, dest } = req...

Tạo và deploy Azure Resource Manager templates bằng cách sử dụng Azure portal

Trong bài viết này, mình sẽ hướng dẫn các bạn cách tạo Azure Resource Manager (ARM) bằng cách phát sinh template từ Azure portal, edit lại, và deploy template từ Azure portal. ARM là gì? ARM (Azure Resource Manager) template là một tập tin có cấu trúc sử dụng định dạng JSON, định nghĩa các tài nguyên (resource) mà bạn sẽ triển khai trên Azure. Để tìm hiểu về cấu trúc file ARM, bạn vào xem hướng dẫn ở link này: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authoring-templates

Build và Deploy ASP.NET Applicaiton lên Azure Web App bằng Visual Studio Online

Trong bài viết này, mình sẽ hướng dẫn các bạn cách build 1 project đơn giản trên VSO và thực hiện deploy trên Azure. Quá trình đó gọi là CI và CD CI là quy trình tự động build (và chạy test nếu có) ngay khi code bạn được commit hoặc check in lên project repository trên source control team bạn. Cho phép bạn nhận được các feedback tức thì về việc code bạn có khả thi khi build và sẵn sàng để deploy chưa. CD là quy trình tự động chạy deploy khi có build mới thành công. Kết hợp lại với việc sử dụng CI và CD khi có sự thay đổi code trên repository khi hoàn tất commit hoặc check, code của bạn sẽ được nhanh chóng được kiểm tra, build và tự động deploy lên server test, live web site, hoặc bất cứ nơi nào bạn muốn.

Transform Web.config với Debug/Release on Build

Hôm trước mình build 1 web application trên VSTS, gặp trường hợp lỗi là web.config không tự động transform sang chế độ release. Cách khắc phục là mình thực hiện việc transform web.config trước khi build solution. Files trong project Tạo mới 1 dự án Web API 2. Bạn sẽ có 3 file web config: Web.config Web.Debug.config Web.Release.config Tạo file Web.Base.config. Copy toàn bộ nội dung từ Web.config => Web.Base.config. File Web.Base.config được dùng làm file gốc để thực hiện việc transform web config.