Github Actions – Deploying [P2]

Tiếp theo bài về execute UnitTest giờ thì ta deploy lên STAG / UAT Giả sử ta có Workflow như sau Chạy Code Standards checksRồi Rector để upgrade code structure với PHP 8Sau đó chạy UnitTestCuối cùng sẽ deploy lên STAGSau khi merge PR về develop sẽ deploy lên UAT 1 chút nhắc lại câu... Continue Reading →

XCrawler – Github action

name: XCrawler - Build & Tests on: pull_request: branches: [ develop ] jobs: build: # Test on Workstation runs-on: [ Workstation ] services: mysql: image: mysql:8.0.26 env: MYSQL_ROOT_PASSWORD: laravel MYSQL_USER: laravel MYSQL_PASSWORD: laravel MYSQL_DATABASE: laravel ports: - 3307:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5 -e MYSQL_ROOT_PASSWORD=laravel -e MYSQL_USER=laravel -e MYSQL_PASSWORD=laravel -e MYSQL_DATABASE=laravel --entrypoint sh mysql:8... Continue Reading →

XCrawler – Automatically post to WordPress

Okay bài toán này trước đây mình đã xử lý. Tuy nhiên giờ thì xử lý triệt để hơn. Gửi notifications / email khi có favorited movies. Dựa trên genres / castsGửi email khi có movie mới lên WordPress Về cơ bản 2 bài toán này similar nhau. Observe table movies khi có createdKiểm tra... Continue Reading →

XGallery vs Google Drive

Flickr . ! Feature này được develop để đưa photos download từ Flickr qua XGallery lên thẳng Google Drive luôn. Như vậy giảm tải cho local storage, dễ dàng sharing hơn. Tất nhiên cái giá phải trả là trả cho Google Drive. Vậy feature này work sao Dĩ nhiên đầu tiên là download photos (... Continue Reading →

Deploy update for Laravel project

Well. Bài này mình sẽ guide 1 chút về việc deploy bản update cho Laravel project. Giả sử bạn có 1 vài fixes, updates và cần deploy lên. So ... To enable maintenance mode, execute the down Artisan command php artisan down git pull php artisan optimize:clear Nếu có jobs failed và cần retry lại... Continue Reading →

Quick command to reset your data with Laravel route

Với project XGallery thường xuyên phải reset data sau khi test một cái gì đó. Mà nhiều thứ phải làm quá ... nên build nhanh 1 con clear:all Artisan::command('clear:all', function () { array_map('unlink', array_filter((array) glob(storage_path('logs/*.log')))); $this->comment('Logs have been cleared!'); array_map('unlink', array_filter((array) glob(storage_path('app/*.tmp')))); $this->comment('Tmp files have been cleared!'); $tableNames = Schema::getConnection()->getDoctrineSchemaManager()->listTableNames(); Schema::disableForeignKeyConstraints(); foreach ($tableNames as $name)... Continue Reading →

Up ↑