GitLab Pipeline – PHP Training – Continuous Integration

안녕하세요, 소프트웨어 엔터테인먼트의 친구, 오늘은 나와 함께하는 방법을 보여 드리겠습니다 GitLab과 Continuous Integration이 Never Code Alone 페이지를 변경했습니다

터치하고 배포하고 롤아웃합니다 오늘 홀의 변화가 있습니다 명성 페이지 스폰서를위한 새로운 연락 담당자가 있습니다 보기 우리는 여기에 있습니다

이것은 페이지 그룹의 Davide입니다 확실히 다시 입력되었습니다 그것은 우리가 모든 사람들에게 내리는 변화입니다 프론트 엔드에 표시되는 사례를 확인하고 Marco는 여기에 새로운 링크가 있습니다 직접 Xing 구인 광고를 받으십시오

그리고 여기 이 두 가지 변경 사항은 커밋에서 함께 배포됩니다 이를 위해 나는 Git에서 현재 지점을하고 있는데, 티켓 ID 맞을 것이다 나는 그들을 여기에 두지 않는다 그래서 그들에게 이름을 지어 라 나는 여기 한 번 개별적으로

Git Checkout 지점 이벤트 / 명예의 전당 후원자 "업데이트"는 현재 또는 다른 곳에있을 수 있습니다 올바른 삶에서 당신은 물론, 티켓 ID에 따라 이제이 지점을 만들었습니다 여기에서 변경 한 내용을 살펴보십시오

여기있다 새 이미지와 여기 템플릿의 두 가지 변경 사항이 있습니다 예, 그렇습니다 Astrid는 더 이상 거기에 없으며, Davide는 다시 그것에 들어가고 있습니다 새로운 lInk는 Marco에 세워졌습니다

여기에 짧은 커밋 메시지를 쓰고 있습니다 나는 "davide와 새로운 링크를 추가하라 marco hof "이제 GitLab에이 변경 사항을 적용 할 예정입니다 원격 저장소 그리고 나 자신을 위해 더 이상 여기서는 할 필요가 없다

나머지 시간은 이제 개인적인 문제를 다루거나 여기에서 일어나는 일들을 말해 다음은 Never Code Alone 프로젝트의 GitLab 인터페이스입니다 여기에는 파이프 라인이 있습니다 여기 백그라운드에서 파이프 라인이 시작되었습니다 현재 내 변경 사항을 롤백하고 그에 따라 확인합니다

여기있다 이제 도커 컨테이너가 시작되거나 여러 개의 도커 컨테이너가 올려지고 있습니다 최대 하나는 PHP 환경 용이고 다른 하나는 해당 환경 용입니다 데이터베이스

클릭하면 클릭합니다 하나는 개별 스테이션을 좀 더 가깝게 유지합니다 시간이 좀 걸립니다 나는 단지 백퍼센트있다 내 기대치와 정확히 일치하는 서버 환경

마치 그건 그렇고, 여기 나는 Davide의 그림을 변경했다 현재 PHP 72에서 74로 변경되었습니다 또는 "작곡가 업데이트" 할 수 있습니다

내가하는 모든 변화는 내가 여기에서도 일어날 수있다 코드 수준뿐만 아니라 환경 수준을 확인하십시오 어느 것이 정말로 많이 실용적인 것은, 나의 테스트가 여기에서 자세히 기술 한 바로부터 자세히 말하기 때문이다 발생합니다 또한 여기에서 테스트를 살펴 보겠습니다

그 지역은 계속해서 이곳에 건설되고 있습니다 우리는 여기 NCAPaaS 페이지에서 연락 양식을 시험해 보았습니다 검사, 채우기 및보기, 데이터베이스에서 올바른지 확인 도착했다 나는 지금 그것을 한 번하고있다 여기에 브라우저가 올라가고, 오른쪽에는 연락 양식이, 작성, 보냈습니다, 그리고 지금 당신이 여기 있습니다 아래 그림에서 빠져 나왔다

네, 여기 어떻게됩니까? 문의 양식은 방금 완료되었습니다 또한 전자 우편의 현재 시간 소인으로, 그건 그냥 전자 메일이 아니라 이전 테스트의 전자 메일이 발견 된 것입니다 이다 그리고 나서 "메시지"테이블의 데이터베이스에서 정확하게 이 정보가 도착했습니다 모든게 지금 10 초 남았 어

지속되었다 여기 직접 보고서도있다 생성 된, 정확히 무슨 일이 있었는지 알려줍니다 우리는 그렇게 할 수있다 현지와 라이브를 모두 시청하십시오

우리는 그 행사에서도 그렇게 할 것입니다 직접 여기에 더 많은 테스트가 있습니다 여기에는 API와 Unittest도 있습니다 그들은 비록 시간이 지나지 않아 작지만 내용 테스트에서는 여기에 예를 들어 있습니다

모든 외부 링크가 "_blank"로 설정되어 있는지 확인하고 SEO에 대한 이러한 속성이 있습니다 여기도 많이 있습니다 유효성이 검사 된 콘텐츠 요소이며 조금만 걸립니다 여기있다 확실히 URL 현재 이벤트에서 –hall-of-fame-sponsor

developnevercodealonede 그래서 현재 지형지 물을 만들었으며 지금 업로드했습니다 여기에 현재 백퍼센트 프론트 엔드에 액세스 할 수 있습니다

이는 수용을위한 환경을 의미합니다 동료를 제공 할 수 있습니다 모든 것이 여기에서도 작동합니다 HTTPS 예, 변명하지 마세요

브라우저가 다른 모든 것이기 때문에 확실히 https 환경이 필요합니다 그 동안 그것을 거부하고 그것은 단지 실제 상황이 아닙니다 그리고 그것은 이러한 일을 성취하기위한 마술조차도 아닙니다 네, 여기 있습니다 지금 잘못된 쪽, 나는 그것을 원하지 않았다

나는 또한 현재의 사건을보고 싶었다 에 현재의 사건은 지금 변화가 효과적이되었다 Davide가 온라인이고 Marco가 새로운 링크를 얻었습니다 예 이제 현재 개발 환경을 살펴 보겠습니다 우리는 변화가 아직 사건에 도달하지 않았 음을 알 수 있습니다

여기 아스트리드가 있습니다 이제 테스트가 완료되었습니다 즉, 어딘가에서 말할 수 있음을 의미합니다 다른 부서에 내 코드에 만족한다 사용할 수있는, 그 테스트를 수용하고 확인을 말한다

두 가지 변경 사항 괜찮아 즉, 이제 병합 요청을합니다 그리고 후원자 명예의 전당에서 말하고 싶다 내 변화를 "발전"의 방향으로 가져 오십시오 개발은 여기 예제입니다

물론 그것은 현재의 주나 다른 것의 릴리스 그것은 몇 가지 변화가 모이는 환경입니다 적절한 릴리스를 위해 전반적으로 실행해야합니다 여기에는 분기 비교 및 ​​계속 버튼이 있습니다 여기 나는 다시 한 번 변화를 봅니다

예, 여기에 하나 있습니다 그림이 여기에 왔고 그에 따라 템플릿의 변경 사항이 여기에 있습니다 나는 그것에 만족하고 "병합 요청 제출"이라고 말할 수 있습니다 병합 요청 아래에 병합 요청이 있습니다 여기 자연스러운 시점에 실제 팀에서도 개발자가 제공하는 여러 병합 요청 제거하십시오

즉, 코드 검토가 완료됩니다 너는 그걸 할 수있어 GitLab에서 현재 병합 요청을 클릭하십시오 여기를 참조하십시오 나는 파이프 라인이 끝나고 녹색으로 돌아가는 것을 멈추었다

여기에는 변화가 있습니다 이러한 변경 사항은 SEO에서 확인됩니다 또한 그것이 나를 위해 괜찮아 보였다고 생각했습니다 나는 ok라고 말한다 나는이 요청을 받고있다

이 시점에서 나는 또한 할 수 있었다 변경 사항을 거부하고 코드를 다시 작성하고 그에 따라 해결하십시오 둡니다 이 경우, 나는 그저 멈추라 고 말합니다 단순히 모든 것이 명확하게 Develop에 병합됩니다

이 버튼을 누른 순간 이미 Develop 지점에 대한 파이프 라인을 시작했습니다 다시 수행하게 될 것입니다 전체 개발 환경이 재 구축되어 사용 가능하게 중단됩니다 제공합니다 여기서 통합 테스트를 살펴 보겠습니다

축하와 다른 테스트 절차 통합 테스트가 조금 걸립니다 다음 두 가지 형식이 있습니다 또한 완전한 콘텐츠 요소를 테스트했습니다 여기에 작은 폼이있다

완료하고 데이터베이스에서 다시 조회합니다 요소가 보이고 보이지 않으면 슬라이더가 클릭됩니다 그에 따라 행동해야합니다 여전히 많은 SEO 설정이 관리되고 있으며 전반적으로 물론이 테스트는 아주 좋습니다 그러나 또한 매우 많은 시간이 소요됩니다

그래서 저는 항상 수동으로하고 싶지는 않지만 실제로는 다행히 파이프 라인이 있으면 자동으로 나를 만든다 이 테스트는 이제 끝났습니다 살펴 보겠습니다 그리고 그동안 파이프 라인이 얼마나 멀리 있는지 여기에 불행히도 여기를 클릭하면 새로 고침 버튼을 다시 눌러야합니다

실제보기, 그럼 당신은 이미 상태가 얼마나 멀리 볼 수 있습니다 여기에 현재 테스트를 실행하십시오 즉 곧 그렇게 될 것입니다 합니다 나는 보고서를 열고 50 초 만에 얻는다

다음의 테스트가 수행되었습니다 예를 들면 다음과 같습니다 시작 페이지에 메타 설명이 있습니다 여기에는 또한 각각의 모든 사진에 오래된 이미지가있는 경우 오래된 사진입니다 예, 예를 들어, CHECK24 Never Code Alone 이벤트

여기에 의미있는 등록인지 아닌지는 모르지만 등록되어 있습니다 그리고 그것들은 이미 여기에 모여 든 사진들입니다 이제 파이프 라인이 통과되어야합니다 이 파이프 라인이 완료되면, 실제 환경에 대한 병합 요청으로 동일한 작업을 다시 수행합니다 덧붙여서 Develop 환경을 살펴볼 수 있습니다

마치 마술처럼, David와 Davide, Marco도 그의 링크를 가지고 있습니다 직업 광고 예, 현재 준비 환경을 살펴 보겠습니다 현재의 준비 환경에는 물론 Astrid가 있습니다 이벤트 페이지로 이동합니다

지금은 압연 할 때 특이성이 있습니다 새로운 병합 요청을하고 있습니다 Develop에서 "master"로 향합니다 변화는 평소와 같습니다 브라우저를 부팅해야합니다

변화는 동일합니다 Davide는 새로운 그림을 얻었습니다 템플릿의 변경 사항입니다 병합 요청을 제출하고 내 경우를 받아 들여서 지금 말하겠습니다 약간의 특이성을 가진 주인쪽으로 전개

우리가 여기 파이프 라인을 보면, 그것은 다른 것보다 약간 더 길다 파이프 라인 및 이제 환경에 따라 다시 빌드하십시오 여기있다 그러나 현재 라이브 시스템에서 사용하는 데이터베이스이므로 데이터베이스에 액세스하는 테스트가 중지됩니다 이제 자세히 살펴 보겠습니다

우리는 개방형 연락 양식 및 유효 데이터를 보유하고 있으며 메시지가 제대로 들어 왔는지 데이터베이스에서 확인합니다 우리는 반드시 라이브 시스템에서 그렇게하고 싶지는 않습니다 우리는 지금 그것을 가지고있다 이미 여러 번 테스트되었고 라이브 시스템에서는 원치 않을 수도 있습니다 데이터베이스에있는 것들을 입력하고 제어하십시오

우리는 여기에 있습니다 라이브 환경을 향해 테스트에서 하드 액세스 그건 하나가 될거야 우리는 반드시 취약점을 밝힐 필요는 없습니다 보자

그녀가 얼마나 멀리 떨어져 있는지 환경 확인 및 배포 완료 이제 다시 그에 따라 테스트됩니다 여기 API 테스트도 있습니다 물론 조금만 작동합니다 빨리

우리가 여기서 시험을 봐야한다면 여기 API 루트에 반대하는 특정 경로의 보안 테스트가 있습니다 공개가 아니며 유효하고 유효한 테스트도 있습니다 데이터베이스를 들여다 봅니다 그리고 여기에도 확실한 테스트가 있습니다 주어진 값, 필수 필드가 주어지지 않는 값, 401er가 여기로 돌아온다

네, 그건 우리 작은 애들에게 중요합니다 문의 양식 및 메시지에 대해서만 그렇지만 일반적으로 동의어로 테스트해야합니다 마지막이지만 그렇지 않은 경우 우리는 여전히 UnitTtest를 가지고있다 300 밀리 초를 가진 사람들은 훨씬 빠른 테스트와 그 자체입니다 그것이 테스트 중심 개발 또는 일상 업무에 적합한 이유입니다

소스 코드에 매우 적합합니다 여기에 300 밀리 초 걸립니다 보고서를 생성합니다 내가 보고서를 여기에두고 간다면 이는 또한 순수한 200 밀리 초 범위 내에있다 내가 그걸 본다면 테스트를 통해 다시 자세히 살펴볼 수 있습니다

실질적으로 모든 기능은 우리의 경우에 스팸 방지 기능이 제공됩니다 이것은 데이터베이스에 없습니다 물론 모든 것이 조롱 받고 유닛 만 테스트됩니다 여기에 "마스터"가 테스트되었습니다 물론 "마스터"는 "composer install –no-dev" 출시

테스트는 물론 처음부터 가능합니다 Lice 시스템의 취약점들, 그러나 그들은 단순 할 필요가 있습니다 긴 다시 시스템에 살 수도있는 종속성을가집니다 우리는 그것을 가지고 싶지 않으며 당연히 우리는 또한 약간의 시간을 절약하기를 원합니다

즉, 프론트 엔드에서 기본 테스트 만 테스트합니다 그거야 다음은 실행중인 모든 테스트입니다 여기에는 일이 없습니다 여기있다

더 이상 단위 테스트가없고 데이터베이스에 더 이상 테스트가 없습니다 데이터베이스를 보거나 입력하십시오 하지만 여기서 경로가 제대로 작동하는지 확인할 수 있습니다 개별 콘텐츠 요소가 적절하게 작동하는지 여부, 개별 SEO 기준을 충족합니다 기본적으로, 나는 말할 수있다

내 자바 스크립트 잘 작동하고 당신은 합리적인 프레임 워크를 가지고 로드되었습니다 그리고 난 다시 여기 왔어 내 인생을 조금은 확실히 만들어 줄 여분의 보안 좀 더 조용하게 나를 쉽게 해줍니다 그리고 지금 내가 여기 있으면 이게 스테이징 환경의 현재 상태입니다 무엇 여기서 일어난다

다음은 현재 PHP의 현재 스냅 샷입니다 컨테이너 촬영, 병렬 배치, 여기에 "작곡가 설치"실행 그런 다음 다시 사용할 수있는 최신 테스트가 있으며 여기에있을 것입니다 순수한 수용으로 통합 테스트가 수행되지 않았습니다 방송국 환경은 나와 같은 라이브 환경과 정확히 같습니다 기대합니다

유일한 차이점은 바로 그만이다 이 작은 세그먼트는 URL에 있습니다 내가 그걸 가지고 지금 그것을 가지고 간다면 나는 여기 모든 것을 분명히 밝히게되어 행복하다 독사는 매우 고래 다 컨테이너를 운반하고 여기 현재 고래를 멈추게합니다

기존 고래와 평행 한 물속에 들어갔다가 멈춘다 생산에 따라 깃발을 세웁니다 어느 쪽이 현재 시스템이 현재입니다 이제 우리가 현재의 절대 Ciode Alone을 보면 명예의 전당 행사에 참석하십시오 그리고 우리는 여기에 아스트리드를 가지고 있습니다

지금 배포 배치라고하면 라이브 데이 구현 좀 봐 줄래? 정확히 여기서 어떻게되는지 잠시, 고래이기도하고, 너무 빨리 움직이지는 않습니다 그렇습니다 고래는 아니지만 PHP도 아이콘으로 코끼리를 가지고 있습니다

그렇다고해서 반드시 가장 빠른 프로그래밍 언어가 필요하다는 의미는 아닙니다 세상이 있습니다 예, 그렇지만 건강한 자기 유머는 물론 좋습니다 그거야 이제, 변화가 생겨서 우리가 여기에 왔음을 의미합니다

보안을 강화하기 위해 수동으로 여기에 대해 생각했습니다 말할 필요도 없습니다 – 다시로드 할 수 있습니까? – 녹색이 될 때까지 – 우리가 여기 있습니다 수동으로 "Confirm Upgrade"버튼을 누르십시오 그렇지 않으면 현재 "마스터"에 새로운 변경이 허용되지 않습니다 그거 가지고있어

우리는 워크 플로우의 안전 기준으로 생각했습니다 그 자리에서 반드시 일어나는 것은 아닙니다 이제는 실제로 녹색으로 표시됩니다 그리고 나서 그것은 완전히 끝났습니다 물론 그것은 내가 여기 있다는 것을 의미한다

로컬 변경, 여기에서 일하고있는 나와 더불어, 긍정 git fetch nca "master"와 "dev"에 대한 변경은 단지 거기에서 멈추었 기 때문에 발생했다고합니다 GitLab에서만 발생합니다 나는 지역적으로 또는 지역적으로 발전 할 수 없다 마스터 퍼프 그 때문에 나는 완전히 잠겼다

이것은 단지 현재 워크 플로가 진행됩니다 이제 모든 것이 녹색입니다 이제 모두가 행복합니다 출시가 시작되었습니다 서비스

당신은 내가 또한 매우 빠른 방향으로 나아갈 수 있다고 상상할 수 있습니다 지속 배달 및 ok ok, 기능이 녹색 인 경우 그러면 자동으로 개발로 병합됩니다 개발이 녹색이면 나는 자동적으로 주인을 합병한다 주인이 초록색이라면 가라 혼자 살기

나는이 시점에서 아무 것도 할 필요가 없다 그게 너에게 재미 있다면, 여기 비디오를 좋아해주세요 때로는 비디오 설명에서 소스에 직접 동의어가 있습니다 여기있는 모든 것은 오픈 소스입니다 궁금한 점이 있으면 동영상 아래에 댓글을 달거나 개인적으로 저에게 편지를 보내십시오

우리는 그것을 위해 여기에 있습니다 나는 너를 보았 기 때문에 기쁘다 다음 번엔 즐겁게 지내세요