Skip to content

Instantly share code, notes, and snippets.

View nguyenthanhcong101096's full-sized avatar
🤫

Nguyen Thanh Cong nguyenthanhcong101096

🤫
  • Coinhako
  • Thao Dien, TP Thu Duc, HCM
View GitHub Profile

Hello Docker CI / CD - Github Actions

1. Intro

Manually running builds, executing tests and deploying can become a nightmare and an error-prone process:

In this post we will use Github Actions to automatically trigger the following processes on every merge to master or pull request:

  • Fire up a clean linux + nodejs instance.
  • Download the repository source code.
  • Install the project dependencies.

Github Actions là gì?

  • Github Actions cho phép chúng ta tạo workflows vòng đời phát triển phần mềm cho dự án trực tiếp trên Github repository của chúng ta

  • Github Actions giúp chúng ta tự động hóa quy trình phát triển phần mềm tại nơi chúng ta lưu trữ code và kết hợp với pull request và issues. Chúng ta có thể viết các tác vụ riêng lẻ, được gọi là các actions và kết hợp các actions đó lại với nhau để tạo ra một workflow theo ý của chúng ta. Workflow là các tiến trình tự động mà bạn có thể thiết lập trong repository của mình để build, test, publish package, release, hoặc deploy dự nào trên Github

  • Với Github Actions chúng ta có thể tích hợp continuous integration (CI) và continuous deployment (CD) trực tiếp trên repository của mình

CI là gì?

  • CI là viết tắt của Continuous Integration (Tích hợp liên tục)
  • CI là phương pháp phát triển phần mềm đòi hỏi các thành viên trong nhóm phải tải code của họ lên kho lưu trữ thường xuyên, lý tưởng là nhiều lần trong ngày.
  • Mỗi lần họ làm, mã được xác minh bởi một bản dựng tự động, bộ kiểm tra chạy các công cụ phân tích mã tĩnh chuyên dụng kiểm tra các lỗ hổng bảo mật, lỗi và tất cả các loại không chính xác.
  • Điều này rất tốt cho cả nhóm giúp giảm bớt vấn đề và phát triển phần mềm nhanh hơn

Tại sao lại cần Continuous Integration?

Thông thường, các lập trình viên thường làm việc độc lập trong 1 thời gian dài và chỉ merge code vào nhánh master khi họ đã hoàn thành công việc. Chưa kể đến sau khi merge còn cần phải chờ review, có khi phải đợi đến vài ngày hay cả tuần. Điều này dẫn đến việc merge code gặp khó khăn, tiêu tốn nhiều thời gian, và đồng thời cũng tạo ra nhiều bugs, conflicts...

@nguyenthanhcong101096
nguyenthanhcong101096 / awesome-interview-questions.md
Last active December 30, 2023 17:17
awesome-interview-questions

Sử dụng Vagrant tạo và quản lý máy ảo

Công cụ vagrant là gì

  • Vagrant là một công cụ tương tác với các nền tảng ảo hóa như VirtualBox, HyperV, VM ..., nó giúp tạo và quản lý các máy ảo trên các nền tảng đó. Vagrant cung cấp một cấu hình đơn giản tạo và quản lý, tương tác với máy ảo mà không có nhiều sự khác biệt dù bạn đang sử dụng VirtualBox, VM hay HyperV

Cài đặt Vagrant

  • Vagrant làm việc với một nền tảng ảo hóa nào đó như VirtualBox, HyperV, VM ... nên bạn cũng cần có trên hệ thống của mình, ví dụ cần cài đặt VirtualBox nếu dùng nền tảng này, ở phần này coi như bạn đã đang có VirtualBox hay HyperV trên hệ thống

Cài đặt vagrant trên Windows / macOS

@nguyenthanhcong101096
nguyenthanhcong101096 / vpc_ec2_rds.md
Last active November 23, 2023 01:41
AWS EC2 VPC RDS

[AWS] Building Your First Amazon Virtual Private Cloud+(EC2+RDS+VPC)

Mục đích

  • Task 1: Tạo và hiểu được mục đích của 1 VPC là gì?
  • Task 2: Tạo và hiểu được mục đích của 1 public subnet là gì?
  • Task 3: Tạo và hiểu được mục đích của 1 Internet Geteway là gì?
  • Task 4: Tạo và hiểu được mục đích của 1 Route Table là gì?

Ansible - Playbook

khái niệm

  • Ansible là công cụ hỗ trợ, cấu hình, cài đặt hệ thống một cách tự động

Lợi ích

  • Giúp thực hiện công việc triển khai hệ thống đơn giản và thuận tiện
  • Hạn chế những công đoạn lặp lại, tiết kiệm thời gian
@nguyenthanhcong101096
nguyenthanhcong101096 / laravel-deploy.md
Last active May 5, 2020 16:19
Push Project Laravel to EC2

Deploy Laravel to EC2

Install PHP 7.1 with Nginx on Ubuntu 16.04

Step 1: Enable PPA

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
@nguyenthanhcong101096
nguyenthanhcong101096 / react-native.md
Last active December 24, 2020 00:28
React-Native Basic

React Native Logo https://github.com/huongnguyenvan/react-native

CODE 101 - React Native

Chào mừng các bạn đến với hướng dẫn học React-Native cho người mới bắt. Sau đây là một số chia sẻ, hướng dẫn của mình cho người mới bắt đầu tìm hiểu về React-Native. Qua đó nhằm giúp các bạn có cách nhìn tổng quát hơn và dễ dàng tìm hiểu vấn đề khi mới chập chững bước chân vào lập trình với React-Native.

P/s: Bài viết chủ yếu dựa trên tài liệu chính thống của React-Native phiên bản 0.56 tại https://facebook.github.io/react-native/docs/getting-started kết hợp với sự hiểu biết cá nhân của mình vì vậy nếu có sai sót, anh em cứ góp ý để mình sửa đổi nhé.