GHYGEN: GitHub 작업 Yaml 생성기

내가 만든 것



Ghygen은 Laravel 애플리케이션을 위한 GitHub Actions 구성자입니다.

카테고리 제출:



비즈니스용으로 제작

앱 링크



데이터베이스 서비스 설정, 여러 PHP 버전 사용, 여러 Laravel 버전 사용, 프런트엔드 빌드, 패키지 캐시, 브라우저 실행, 기능 및 단위 테스트…
https://ghygen.hi-folks.dev/

스크린샷





설명



Ghygen은 GitHub Actions Yaml 생성기입니다.

Laravel/PHP 개발자의 경우 Ghygen을 사용하면 GitHub Actions 워크플로용 Yaml 파일을 생성할 수 있으므로 다음을 수행할 수 있습니다.
  • 선택 이벤트 트리거(수동, 푸시 시, 풀 요청 시);
  • 분기 선택;
  • 모든 공급업체에 대해 캐싱을 활성화합니다.
  • PHP 패키지 캐싱을 활성화합니다.
  • 여러 PHP 버전을 선택합니다.
  • NPM에 대한 노드 버전 선택(npm run something);
  • 캐싱 노드 패키지;
  • Mysql 서비스 설정;
  • 마이그레이션을 실행합니다.
  • phpunit을 통해 테스트를 실행합니다.
  • 정적 코드 분석;
  • 코드 스니퍼(phpcs를 통해);
  • Yaml 파일의 유효성을 검사합니다.

  • 소스 코드 링크



    Source Code

    허용 라이선스



    MIT License

    배경



    이 몇 주 동안 여가 시간에 몇 가지 사이드 프로젝트를 위해 Laravel, GitHub Actions를 약간 사용했습니다.
    이 프로젝트의 좋은 점 중 하나는 "푸시"또는 "풀 요청"을 수행/생성할 때마다 Github 작업을 사용하여 소스 코드의 유효성을 검사하는 것입니다.
    일반적으로 다음을 사용하여 코드의 유효성을 검사하는 데 사용됩니다.
  • phpunit: 테스트 스위트 실행용;
  • phpcs: PSR*을 사용하여 소스 코드의 일부 일관성을 확인합니다.
  • phpstan: 코드 분석용.

  • 사이드 프로젝트 덕분에 GitHub Actions로 워크플로를 만들고 유지하는 방법에 대해 많은 것을 배웠습니다. 저는 이 주제(특히 Laravel 및 PHP 웹 애플리케이션용)에 대한 몇 가지 게시물과 기사를 썼습니다. 예를 들어 개발자로부터 많은 질문을 수집했습니다.
  • GitHub Actions 워크플로우에서 MySql/MariaDb 데이터베이스를 구성하는 방법;
  • 환경 구성을 저장하는 방법;
  • 암호 등과 같은 일부 비밀을 저장하는 방법;
  • 공급업체를 캐시하는 방법;
  • npm 패키지를 캐시하는 방법.
    그래서 저는 이번 해커톤을 통해 개발자가 자신의 작업 흐름을 구성할 수 있는 일종의 양식/구성기인 GHYGEN(GitHub Yaml Generator)을 구축하고 있습니다.

  • 내가 만든 방법



    라라벨 애플리케이션을 구축할 때 Ubuntu LTS + Ngnix + php + MariaDb로 드롭릿을 인스턴스화하는 데 익숙했습니다.
    이번 해커톤을 통해 처음으로 DigitalOcean App Platform을 가지고 놀기 시작했습니다.
    라라벨을 위한 새로운 환경을 만드는 것은 매우 쉽습니다.
    다음은 DigitalOcean App Platform에 배포된 Laravel 애플리케이션에 대한 제 노트입니다.
  • .env 매개변수를 사용하는 대신 "구성 요소"에서 환경 변수를 사용합니다.
  • 자산을 로드하기 위해 HTTPS 체계를 강제 적용합니다(asset() 도우미 사용).

  • 추가 리소스/정보



    강제 HTTPS 체계의 경우:
  • APP_FORCE_HTTPS( 부울 ) 매개변수를 추가했습니다
  • .
  • config/app.php 파일에 추가했습니다.

  • 'force_https'=>env('APP_FORCE_HTTPS', false),
    


  • app/Providers/AppServiceProvide.php 의 부팅 기능에서 forceScheme 을 추가했습니다.

  •     public function boot()
        {
            if (config("app.force_https")) {
                \URL::forceScheme('https');
            }
        }
    

    좋은 웹페이지 즐겨찾기