{"id":4407,"date":"2019-08-11T22:12:51","date_gmt":"2019-08-11T19:12:51","guid":{"rendered":"https:\/\/www.almtoolbox.com\/blog_he\/?p=4407"},"modified":"2019-08-12T22:22:09","modified_gmt":"2019-08-12T19:22:09","slug":"github-gitlab-ci-cd","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/blog_he\/github-gitlab-ci-cd\/","title":{"rendered":"\u05d4\u05d0\u05dd \u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d4\u05d1\u05d0 \u05d0\u05e4\u05e9\u05e8\u05d9?  GitHub + GitLab CI\/CD"},"content":{"rendered":"<p>\u05d1\u05ea\u05e7\u05d5\u05e4\u05d4 \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d4 \u05d9\u05e9\u05e0\u05d4 \u05d4\u05ea\u05e2\u05e0\u05d9\u05d9\u05e0\u05d5\u05ea \u05d2\u05d5\u05d1\u05e8\u05ea \u05d1- GitLab \u05d5\u05d1\u05e4\u05e8\u05d8 \u05d1\u05e8\u05db\u05d9\u05d1 \u05d4- CI\/CD \u05d4\u05de\u05ea\u05e7\u05d3\u05dd\u00a0 \u05e9\u05de\u05d2\u05d9\u05e2 built-in \u05d1\u05de\u05d5\u05e6\u05e8.<br \/>\n\u05dc\u05d0\u05d5\u05e8 \u05d6\u05d0\u05ea \u05db\u05ea\u05d1\u05e0\u05d5 \u05dc\u05d0\u05d7\u05e8\u05d5\u05e0\u05d4 \u05db\u05de\u05d4 \u05ea\u05db\u05e0\u05d9\u05dd \u05d1\u05e0\u05d5\u05e9\u05d0 \u05d5\u05e7\u05d9\u05d9\u05de\u05e0\u05d5 \u05db\u05de\u05d4 \u05de\u05e4\u05d2\u05e9\u05d9\u05dd \u05d1\u05e0\u05d5\u05e9\u05d0 (\u05db\u05d5\u05dc\u05dd \u05de\u05d5\u05e7\u05dc\u05d8\u05d9\u05dd), \u05d5\u05e7\u05d9\u05d1\u05dc\u05e0\u05d5 \u05d4\u05e8\u05d1\u05d4 \u05e9\u05d0\u05dc\u05d5\u05ea \u05de\u05e2\u05e0\u05d9\u05d9\u05e0\u05d5\u05ea.<\/p>\n<p>\u05d1\u05de\u05d0\u05de\u05e8 \u05dc\u05d4\u05dc\u05df \u05d0\u05e0\u05d9 \u05de\u05ea\u05de\u05e7\u05d3 \u05d1\u05d0\u05d7\u05ea \u05d4\u05e9\u05d0\u05dc\u05d5\u05ea \u05e9\u05e0\u05e9\u05d0\u05dc\u05e0\u05d5 \u05db\u05de\u05d4 \u05e4\u05e2\u05de\u05d9\u05dd, \u05d5\u05d4\u05d9\u05d0: \u05d4\u05d0\u05dd \u05d0\u05e4\u05e9\u05e8 \u05dc\u05d7\u05d1\u05e8 \u05d1\u05d9\u05df GitHub \u05dc- GitLab CI\/CD ? \u05d5\u05dc\u05de\u05e2\u05e9\u05d4 \u05d5\u05d0\u05e8\u05d9\u05e6\u05d9\u05d4 \u05e9\u05dc \u05d4\u05e9\u05d0\u05dc\u05d4 \u05d4\u05d9\u05d0 &quot;\u05d4\u05d0\u05dd \u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 Jira + GitHub + GitLab CI\/CD \u05d0\u05e4\u05e9\u05e8\u05d9? &quot; (\u05d4\u05d5\u05d0\u05d9\u05dc \u05d5\u05dc\u05e2\u05ea\u05d9\u05dd \u05de\u05e9\u05ea\u05de\u05e9\u05d9 GitHub \u05d2\u05dd \u05e2\u05d5\u05d1\u05d3\u05d9\u05dd \u05e2\u05dd Jira) .<\/p>\n<p><strong>\u05d5\u05d4\u05ea\u05e9\u05d5\u05d1\u05d4 \u05dc\u05db\u05da \u05d7\u05d9\u05d5\u05d1\u05d9\u05ea.<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4408\" src=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2019\/08\/gilab-github-logos.jpg\" alt=\"github gitlab logo\" width=\"515\" height=\"362\" srcset=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2019\/08\/gilab-github-logos.jpg 644w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2019\/08\/gilab-github-logos-300x211.jpg 300w\" sizes=\"auto, (max-width: 515px) 100vw, 515px\" \/><\/p>\n<p>\u05d1\u05d3\u05e7\u05e0\u05d5 \u05d0\u05ea \u05d4\u05e0\u05d5\u05e9\u05d0 \u05dc\u05e2\u05d5\u05de\u05e7 \u05d5\u05d1\u05e4\u05d5\u05e1\u05d8 \u05d4\u05d6\u05d4 \u05e0\u05e1\u05d1\u05d9\u05e8 \u05db\u05d9\u05e6\u05d3 \u05d6\u05d4 \u05de\u05ea\u05d0\u05e4\u05e9\u05e8.<br \/>\n\u05de\u05de\u05d4 \u05e9\u05e8\u05d0\u05d9\u05e0\u05d5 , \u05d1\u05e1\u05d9\u05d8\u05d5\u05d0\u05e6\u05d9\u05d5\u05ea \u05d1\u05d4\u05df \u05d4\u05e9\u05d0\u05dc\u05d4 \u05e0\u05e9\u05d0\u05dc\u05ea &#8211; \u05d1\u05d7\u05d1\u05e8\u05d4 \u05d9\u05e9 \u05db\u05d1\u05e8 GitHub \u05d5\u05dc\u05e8\u05d5\u05d1 \u05d2\u05dd Jenkins , \u05d5\u05d4\u05e8\u05e6\u05d5\u05df \u05d4\u05d5\u05d0 \u05dc\u05d4\u05d7\u05dc\u05d9\u05e3 \u05d0\u05ea Jenkins \u05dc\u05e4\u05ea\u05e8\u05d5\u05df \u05de\u05d5\u05d3\u05e8\u05e0\u05d9 \u05d9\u05d5\u05ea\u05e8, \u05d5\u05d9\u05d7\u05d3 \u05e2\u05dd \u05d6\u05d0\u05ea \u05dc\u05d0 \u05e8\u05d5\u05e6\u05d9\u05dd \u05dc\u05d4\u05d7\u05dc\u05d9\u05e3 \u05d0\u05ea GitHub \u05db\u05d9 \u05d4\u05d5\u05e9\u05e7\u05e2\u05d4 \u05d1\u05d5 \u05e2\u05d1\u05d5\u05d3\u05ea \u05d4\u05ea\u05d0\u05de\u05d4 \u05dc\u05d0\u05e8\u05d2\u05d5\u05df (\u05d5\u05dc\u05de\u05e8\u05d5\u05ea \u05e9\u05db\u05d9\u05d3\u05d5\u05e2 GitLab \u05d4\u05d5\u05d0 \u05ea\u05d7\u05dc\u05d9\u05e3 \u05de\u05d5\u05d3\u05e8\u05e0\u05d9 \u05d5\u05de\u05ea\u05e7\u05d3\u05dd \u05d2\u05dd \u05dc- GitHub &#8211; \u05d0\u05da \u05e2\u05dc \u05db\u05da \u05db\u05d1\u05e8 \u05db\u05ea\u05d1\u05e0\u05d5 \u05db\u05de\u05d4 \u05de\u05d0\u05de\u05e8\u05d9\u05dd \u05d1\u05e2\u05d1\u05e8 \u05d5\u05d2\u05dd \u05d4\u05e7\u05dc\u05d8\u05e0\u05d5 case study \u05e9\u05dc \u05d7\u05d1\u05e8\u05d4 \u05e9\u05e2\u05e9\u05ea\u05d4 \u05d0\u05ea \u05d4\u05de\u05e2\u05d1\u05e8 \u05d4\u05e0&quot;\u05dc [\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d1\u05d4\u05de\u05e9\u05da]).<\/p>\n<p>\u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d0\u05e4\u05e9\u05e8\u05d9 \u05d4\u05df \u05d1\u05d2\u05d9\u05e8\u05e1\u05ea \u05e2\u05e0\u05df \u05e6\u05d9\u05d1\u05d5\u05e8\u05d9 (github.com)\u00a0 \u05d5\u05d4\u05df \u05d1\u05d2\u05d9\u05e8\u05e1\u05ea self-hosted \u05e9\u05d1\u05d5 \u05d4\u05e9\u05e8\u05ea \u05d1\u05d1\u05e2\u05dc\u05d5\u05ea\u05db\u05dd (\u05d3\u05d4\u05d9\u05d9\u05e0\u05d5 on-premises \u05db\u05d0\u05e9\u05e8 \u05d4\u05e9\u05e8\u05ea \u05de\u05ea\u05d0\u05e8\u05d7 \u05d0\u05e6\u05dc\u05db\u05dd \u05d0\u05d5 \u05d1\u05d0\u05d9\u05e8\u05d5\u05d7 \u05e4\u05e8\u05d8\u05d9 \u05d1\u05e2\u05e0\u05df \u05db\u05dc\u05e9\u05d4\u05d5). \u05dc\u05de\u05e2\u05e9\u05d4 \u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d0\u05e4\u05e9\u05e8\u05d9 \u05d1\u05db\u05dc \u05e6\u05d5\u05e8\u05d5\u05ea \u05d4\u05d4\u05e4\u05e6\u05d4 \u05e9\u05dc GitLab CI\/CD \u05d5\u05e9\u05dc GitHub.<br \/>\n\u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d1\u05d9\u05e0\u05d9\u05d4\u05dd \u05de\u05ea\u05d0\u05e4\u05e9\u05e8 \u05d1\u05e2\u05d6\u05e8\u05ea \u05e9\u05e0\u05d9 \u05e4\u05d9\u05e6'\u05e8\u05d9\u05dd \u05e9\u05e7\u05d9\u05d9\u05de\u05d9\u05dd \u05d1- GitLab :<\/p>\n<ul>\n<li>GitLab CI\/CD for external repositories (\u05e0\u05d5\u05e1\u05e3 \u05d1\u05de\u05e8\u05e5 2018)<\/li>\n<li>Remote repository pull mirroring (\u05e7\u05d9\u05d9\u05dd \u05de\u05d0\u05d6 2017)<\/li>\n<\/ul>\n<p>\u05de\u05e0\u05e1\u05d9\u05d5\u05e0\u05e0\u05d5, \u05de\u05d5\u05de\u05dc\u05e5 \u05dc\u05d1\u05e6\u05e2 \u05ea\u05db\u05e0\u05d5\u05df \u05dc\u05e4\u05e0\u05d9 \u05d4\u05e9\u05d9\u05de\u05d5\u05e9 \u05d1\u05d4\u05dd (\u05dc\u05d3\u05d5\u05d2': \u05db\u05d9\u05e6\u05d3 \u05d9\u05e8\u05d0\u05d5 \u05ea\u05d4\u05dc\u05d9\u05db\u05d9 \u05d4\u05e2\u05d1\u05d5\u05d3\u05d4 \u05d5\u05d4- pipelines ; \u05d4\u05d3\u05e8\u05db\u05d5\u05ea \u05dc\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d5\u05db\u05d5').<br \/>\n\u05d4\u05e9\u05d9\u05de\u05d5\u05e9 \u05d1\u05e4\u05d9\u05e6'\u05e8 \u05d4\u05e9\u05e0\u05d9 (pull mirroring) \u05d2\u05dd \u05de\u05e6\u05e8\u05d9\u05da \u05d4\u05ea\u05d0\u05de\u05d4 \u05ea\u05db\u05e0\u05d5\u05e0\u05d9\u05ea \u05e0\u05d5\u05e1\u05e4\u05ea \u05e2&quot;\u05de \u05dc\u05e0\u05e6\u05dc \u05e0\u05db\u05d5\u05df \u05d0\u05ea \u05d4\u05e4\u05d9\u05e6'\u05e8 \u05d5\u05d0\u05ea \u05d4- best practices \u05d4\u05d8\u05de\u05d5\u05e0\u05d9\u05dd \u05d1\u05d5.<\/p>\n<h3>\u05d0\u05d9\u05da \u05d9\u05e8\u05d0\u05d4 \u05ea\u05d4\u05dc\u05d9\u05da \u05d4\u05e2\u05d1\u05d5\u05d3\u05d4 \u05d9\u05d7\u05d3?<\/h3>\n<p>\u05d1\u05ea\u05e8\u05e9\u05d9\u05dd \u05dc\u05d4\u05dc\u05df \u05ea\u05d4\u05dc\u05d9\u05da \u05e2\u05d1\u05d5\u05d3\u05d4 \u05d1\u05e1\u05d9\u05e1\u05d9 \u05e9\u05d1\u05e0\u05d9\u05e0\u05d5 \u05d5\u05d0\u05d5\u05ea\u05d5 \u05d0\u05e0\u05d5 \u05de\u05e6\u05d9\u05d2\u05d9\u05dd \u05dc\u05d7\u05d1\u05e8\u05d5\u05ea \u05dc\u05d4\u05df \u05d0\u05e0\u05d5 \u05de\u05e1\u05d9\u05d9\u05e2\u05d9\u05dd \u05d1\u05e4\u05d9\u05ea\u05d5\u05d7 \u05ea\u05d4\u05dc\u05d9\u05db\u05d9 \u05e4\u05d9\u05ea\u05d5\u05d7 \u05d5- pipelines.<br \/>\n(\u05db\u05d0\u05de\u05d5\u05e8, \u05d4\u05ea\u05d4\u05dc\u05d9\u05da \u05dc\u05d4\u05dc\u05df \u05d4\u05d9\u05e0\u05d5 \u05d1\u05e1\u05d9\u05e1\u05d9 \u05d9\u05d7\u05e1\u05d9\u05ea, \u05d0\u05da \u05db\u05d5\u05dc\u05dc \u05d0\u05ea \u05db\u05dc \u05d4\u05e9\u05dc\u05d1\u05d9\u05dd \u05d1 &quot;\u05e8\u05d1\u05d9\u05e2\u05d9\u05d4 \u05d4\u05e7\u05dc\u05d0\u05e1\u05d9\u05ea&quot; (\u05e7\u05d9\u05e9\u05d5\u05e8 \u05dc\u05de\u05d0\u05de\u05e8 \u05d1\u05d4\u05de\u05e9\u05da), \u05d5\u05e0\u05d9\u05ea\u05df \u05dc\u05e9\u05e0\u05d5\u05ea \u05d1\u05d5 \u05d3\u05d1\u05e8\u05d9\u05dd \u05e8\u05d1\u05d9\u05dd \u05d1\u05d4\u05ea\u05d0\u05dd \u05dc\u05e6\u05e8\u05db\u05d9\u05dd \u05e1\u05e4\u05e6\u05d9\u05e4\u05d9\u05d9\u05dd \u05d1\u05db\u05dc \u05d7\u05d1\u05e8\u05d4)<\/p>\n<p><a href=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2019\/08\/jira-github-gitlab-flow.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4410\" src=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2019\/08\/jira-github-gitlab-flow.jpg\" alt=\"github gitlab jira flow\" width=\"669\" height=\"361\" srcset=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2019\/08\/jira-github-gitlab-flow.jpg 1002w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2019\/08\/jira-github-gitlab-flow-300x162.jpg 300w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2019\/08\/jira-github-gitlab-flow-768x414.jpg 768w\" sizes=\"auto, (max-width: 669px) 100vw, 669px\" \/><\/a><\/p>\n<p>\u05d4\u05e1\u05d1\u05e8 \u05dc\u05ea\u05e8\u05e9\u05d9\u05dd \u05dc\u05e2\u05d9\u05dc:<\/p>\n<ol>\n<li dir=\"ltr\" style=\"font-weight: 400; text-align: left;\"><span style=\"font-weight: 400;\">The group leader creates an issue in JIRA to fix a bug or develop a feature and assigns it to a developer. The issue is in the \u201cTo Do\u201d status.<\/span><\/li>\n<li dir=\"ltr\" style=\"font-weight: 400; text-align: left;\"><span style=\"font-weight: 400;\">The developer starts working. He moves the issue to status \u201cDoing\u201d, then creates a branch and clones or pulls the repo to his workstation.<\/span><\/li>\n<li dir=\"ltr\" style=\"font-weight: 400; text-align: left;\"><span style=\"font-weight: 400;\">After the feature is developed\/the bug is fixed, the developer pushes his work to the GitHub server, which triggers a CI pipeline.<\/span><\/li>\n<li dir=\"ltr\" style=\"font-weight: 400; text-align: left;\"><span style=\"font-weight: 400;\">If the pipeline succeeds, the developer creates a Pull Request, thus starting a code review.<\/span><\/li>\n<li dir=\"ltr\" style=\"font-weight: 400; text-align: left;\"><span style=\"font-weight: 400;\">As a result of the code review, the developer may be requested to do a number of changes before the Pull Request is merged,\u00a0 with each change triggering a CI pipeline.<\/span><\/li>\n<li dir=\"ltr\" style=\"font-weight: 400; text-align: left;\"><span style=\"font-weight: 400;\">At last, the Pull Request is merged into the master branch, and again a CI pipeline runs to check the merge result.<\/span><\/li>\n<li dir=\"ltr\" style=\"font-weight: 400; text-align: left;\"><span style=\"font-weight: 400;\">Some changes may be needed on the master branch, after which the software is marked as a new baseline and the JIRA issue is marked as \u201cDone\u201d<\/span><\/li>\n<li dir=\"ltr\" style=\"font-weight: 400; text-align: left;\"><span style=\"font-weight: 400;\">Note that there can be many variations on this flow. E.g., there can be an additional JIRA status, \u201cQA Testing\u201d to which the issue moves when a Pull Request is merged.<\/span><\/li>\n<\/ol>\n<h3>\u05dc\u05e1\u05d9\u05db\u05d5\u05dd (\u05d5\u05e0\u05e7\u05d5\u05d3\u05d5\u05ea \u05e0\u05d5\u05e1\u05e4\u05d5\u05ea \u05e9\u05dc\u05de\u05d3\u05e0\u05d5 \u05de\u05d4\u05d1\u05d3\u05d9\u05e7\u05d4 \u05e9\u05d1\u05d9\u05e6\u05e2\u05e0\u05d5):<\/h3>\n<ul>\n<li>\u05e0\u05d9\u05ea\u05df \u05dc\u05d7\u05d1\u05e8 \u05d1\u05d9\u05df GitHub \u05dc- GitLab CI\/CD (\u05d5\u05db\u05da \u05de\u05e7\u05d1\u05dc\u05d9\u05dd \u05d0\u05ea \u05db\u05dc \u05d4\u05e4\u05d5\u05e0\u05e7\u05e6\u05d9\u05d5\u05e0\u05dc\u05d9\u05d5\u05ea \u05d5\u05d4\u05e4\u05d9\u05e6'\u05e8\u05d9\u05dd \u05d4\u05e7\u05d9\u05d9\u05de\u05d9\u05dd \u05d1- GitLab CI\/CD)<\/li>\n<li>\u05e0\u05d9\u05ea\u05df \u05dc\u05d7\u05d1\u05e8 \u05d1\u05d9\u05df Jira + GitHub + GitLab CI\/CD<\/li>\n<li>\u05e0\u05d9\u05ea\u05df \u05d2\u05dd \u05dc\u05d7\u05d1\u05e8 \u05d1\u05d9\u05df Jira + GitLab (\u05d1\u05e2\u05d1\u05e8 \u05db\u05ea\u05d1\u05e0\u05d5 \u05de\u05d0\u05de\u05e8 \u05d1\u05e0\u05d5\u05e9\u05d0 \u05d5\u05d2\u05dd \u05d4\u05d5\u05e6\u05d0\u05e0\u05d5 \u05d5\u05d9\u05d3\u05d0\u05d5 \u05d4\u05de\u05d3\u05d2\u05d9\u05dd \u05d6\u05d0\u05ea)<\/li>\n<li>\u05dc\u05d7\u05d9\u05dc\u05d5\u05e4\u05d9\u05df \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1- GitLab \u05dc\u05db\u05dc \u05d4\u05e4\u05d5\u05e0\u05e7\u05e6\u05d9\u05d5\u05e0\u05dc\u05d9\u05d5\u05ea \u05e9\u05de\u05d2\u05d9\u05e2\u05d4 \u05de- Jira \u05d5- GitHub<br \/>\n(\u05d3\u05d4\u05d9\u05d9\u05e0\u05d5 \u05e9- GitLab \u05d9\u05db\u05d5\u05dc \u05dc\u05e9\u05de\u05e9 \u05db\u05db\u05dc\u05d9 \u05d0\u05d7\u05d3 \u05e9\u05de\u05d7\u05dc\u05d9\u05e3 \u05d0\u05ea Jira + GitHub + Jenkins)<\/li>\n<li>\u05dc\u05de\u05e2\u05e9\u05d4 \u05d0\u05e4\u05e9\u05e8\u05d9 \u05dc\u05d7\u05d1\u05e8 \u05d1\u05d0\u05d5\u05e4\u05df \u05d3\u05d5\u05de\u05d4 \u05d0\u05ea GitLab CI\/CD \u05de\u05d5\u05dc \u05db\u05dc \u05e9\u05e8\u05ea git (\u05db\u05d2\u05d5\u05df Bitbucket, gitolite, gerrit \u05d5\u05db\u05d5')<\/li>\n<li>\u05d4\u05d0\u05dd \u05db\u05d3\u05d0\u05d9 \u05de\u05d1\u05d7\u05d9\u05e0\u05ea \u05d7\u05e1\u05db\u05d5\u05df \u05db\u05e1\u05e4\u05d9 \u05dc\u05d4\u05e9\u05d0\u05e8 \u05e2\u05dd GitHub? \u05dc\u05d0 \u05d1\u05d8\u05d5\u05d7 &#8211; \u05d4\u05d3\u05d1\u05e8 \u05ea\u05dc\u05d5\u05d9 \u05d1\u05db\u05de\u05d4 \u05d2\u05d5\u05e8\u05de\u05d9\u05dd (\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d4\u05ea\u05d9\u05d9\u05e2\u05e5 \u05d0\u05d9\u05ea\u05e0\u05d5 \u05d1\u05e0\u05d5\u05e9\u05d0)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div class=\"alm-box alm-contact\">\n<div dir=\"rtl\"><em>\u05d7\u05d1\u05e8\u05ea ALM-Toolbox \u05de\u05e6\u05d9\u05e2\u05d4 \u05e4\u05ea\u05e8\u05d5\u05e0\u05d5\u05ea \u05de\u05e7\u05e6\u05d4 \u05dc\u05e7\u05e6\u05d4 \u05d1\u05ea\u05d7\u05d5\u05de\u05d9 ALM, Kubernetes, DevOps, \u05d5\u05d1\u05e4\u05e8\u05d8 Bitbucket, GitHub, Jira, GitLab, Jenkins , \u05d1\u05e0\u05d9\u05d9\u05ea \u05e1\u05d1\u05d9\u05d1\u05d5\u05ea \u05e4\u05d9\u05ea\u05d5\u05d7 \u05d5\u05d1\u05d3\u05d9\u05e7\u05d5\u05ea \u05d5\u05d4\u05e2\u05d1\u05e8\u05ea\u05dd \u05dc\u05e7\u05d5\u05e0\u05d8\u05d9\u05d9\u05e0\u05e8\u05d9\u05dd \u05d5\u05dc\u05e2\u05e0\u05df, \u05de\u05d9\u05d2\u05e8\u05e6\u05d9\u05d4 \u05d1\u05d9\u05df \u05db\u05dc\u05d9\u05dd, \u05d4\u05d3\u05e8\u05db\u05d5\u05ea \u05e2\u05dc \u05d4\u05db\u05dc\u05d9\u05dd, \u05d4\u05ea\u05d0\u05de\u05ea \u05e8\u05d9\u05e9\u05d5\u05d9 \u05dc\u05e6\u05e8\u05db\u05d9 \u05d4\u05dc\u05e7\u05d5\u05d7 \u05d5\u05de\u05db\u05d9\u05e8\u05ea \u05e8\u05e9\u05d9\u05d5\u05e0\u05d5\u05ea \u05ea\u05d5\u05db\u05e0\u05d4 \u05de\u05ea\u05d0\u05d9\u05de\u05d9\u05dd \u05d5\u05e2\u05d5\u05d3.<br \/>\n\u05e9\u05d0\u05dc\u05d5\u05ea? \u05e0\u05e9\u05de\u05d7 \u05dc\u05e2\u05e0\u05d5\u05ea \u05e2\u05dc \u05db\u05dc \u05e9\u05d0\u05dc\u05d4 &#8211; \u05d0\u05e4\u05e9\u05e8 \u05dc\u05e4\u05e0\u05d5\u05ea \u05d0\u05dc\u05d9\u05e0\u05d5 \u05d1\u05de\u05d9\u05d9\u05dc\u00a0<a href=\"mailto:devops@almtoolbox.com\" target=\"_blank\" rel=\"noopener\">devops@almtoolbox.com<\/a> \u05d0\u05d5 \u05d8\u05dc\u05e4\u05d5\u05e0\u05d9\u05ea 072-240-5222<\/em><\/div>\n<div dir=\"rtl\"><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h3>\u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd \u05e8\u05dc\u05d1\u05e0\u05d8\u05d9\u05dd:<\/h3>\n<ul>\n<li>\u05de\u05d0\u05de\u05e8: \u05e1\u05e7\u05d9\u05e8\u05ea <a href=\"https:\/\/www.almtoolbox.com\/blog_he\/gitlab-ci-cd-overview\/\" target=\"_blank\" rel=\"noopener\">\u05d4\u05e4\u05d9\u05e6'\u05e8\u05d9\u05dd \u05d4\u05e7\u05d9\u05d9\u05de\u05d9\u05dd \u05d1- GitLab CI\/CD<\/a>\u00a0(\u05e2\u05d1\u05e8\u05d9\u05ea)<\/li>\n<li>\u05d3\u05d5&quot;\u05d7 Forrester \u05d4\u05de\u05e6\u05d9\u05d2 <a href=\"https:\/\/www.almtoolbox.com\/blog\/gitlab-named-ci-leader-in-forrester-wave\/\" target=\"_blank\" rel=\"noopener\">\u05d3\u05d5&quot;\u05d7 \u05d4\u05e9\u05d5\u05d5\u05d0\u05ea\u05d9 \u05e9\u05dc \u05db\u05dc\u05d9 CI \u05de\u05d5\u05d1\u05d9\u05dc\u05d9\u05dd \u05d5\u05d9\u05ea\u05e8\u05d5\u05e0\u05d5\u05ea \u05e9\u05dc GitLab CI\/CD<\/a>\u00a0(\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea)<\/li>\n<li><a href=\"https:\/\/www.almtoolbox.com\/blog_he\/gitlab-ci-cd-demo-may-2019\/\" target=\"_blank\" rel=\"noopener\">\u05d3\u05de\u05d5 \u05d8\u05db\u05e0\u05d9 \u05e9\u05dc GitLab CI\/CD<\/a><\/li>\n<li><a href=\"https:\/\/www.almtoolbox.com\/blog_he\/gitlab-all-features-excel-sheet\/\" target=\"_blank\" rel=\"noopener\">\u05e8\u05e9\u05d9\u05de\u05d4 \u05de\u05dc\u05d0\u05d4 \u05e9\u05dc \u05db\u05dc \u05d4\u05e4\u05d9\u05e6'\u05e8\u05d9\u05dd \u05d4\u05e7\u05d9\u05d9\u05de\u05d9\u05dd \u05d1- GitLab , \u05de\u05e1\u05d5\u05d3\u05e8\u05d9\u05dd \u05dc\u05e4\u05d9 <\/a><a href=\"https:\/\/www.almtoolbox.com\/blog_he\/gitlab-all-features-excel-sheet\/\" target=\"_blank\" rel=\"noopener\">Edition \u05d5- Category<\/a><\/li>\n<li>\u05e2\u05de\u05d5\u05d3\u05d9 \u05de\u05d5\u05e6\u05e8: <a href=\"https:\/\/www.almtoolbox.com\/il\/jira\" target=\"_blank\" rel=\"noopener\">Jira<\/a>\u00a0<a href=\"https:\/\/www.almtoolbox.com\/github.php\" target=\"_blank\" rel=\"noopener\">GitHub<\/a>\u00a0<a href=\"https:\/\/www.almtoolbox.com\/il\/gitlab\" target=\"_blank\" rel=\"noopener\">GitLab<\/a> <a href=\"https:\/\/www.almtoolbox.com\/jenkins-he\" target=\"_blank\" rel=\"noopener\">Jenkins<\/a><\/li>\n<li>\u05de\u05d0\u05de\u05e8: <a href=\"https:\/\/www.almtoolbox.com\/blog_he\/classic-4-for-software-development\/\" target=\"_blank\" rel=\"noopener\">&quot;\u05d4\u05e8\u05d1\u05d9\u05e2\u05d9\u05d4 \u05d4\u05e7\u05dc\u05d0\u05e1\u05d9\u05ea&quot; \u05dc\u05de\u05e4\u05ea\u05d7\u05d9 \u05ea\u05d5\u05db\u05e0\u05d4<\/a>\u00a0(\u05e2\u05d1\u05e8\u05d9\u05ea)<\/li>\n<li><a href=\"https:\/\/www.almtoolbox.com\/blog_he\/our-training-catalog\/\" target=\"_blank\" rel=\"noopener\">\u05e8\u05e9\u05d9\u05de\u05ea \u05e7\u05d5\u05e8\u05e1\u05d9\u05dd \u05e9\u05d0\u05e0\u05d5 \u05de\u05e2\u05d1\u05d9\u05e8\u05d9\u05dd \u05e2\u05dc GitLab, git, Jira, Jenkins<\/a><\/li>\n<li>GitLab CI\/CD workshop &#8211; \u05d1\u05e7\u05e8\u05d5\u05d1<\/li>\n<li>\u05d1\u05e7\u05e8\u05d5\u05d1: \u05d4\u05d3\u05d2\u05de\u05d4 \u05e9\u05dc \u05e9\u05d9\u05de\u05d5\u05e9 \u05d1- GitLab CI\/CD Pipelines \u05d1\u05d7\u05d1\u05e8\u05ea StartApp (\u05e2\u05d1\u05e8\u05d9\u05ea)<\/li>\n<\/ul>\n<p>\u05e8\u05d5\u05e6\u05d9\u05dd \u05dc\u05d4\u05e9\u05d0\u05e8 \u05de\u05e2\u05d5\u05d3\u05db\u05e0\u05d9\u05dd \u05db\u05d0\u05e9\u05e8 \u05e0\u05d5\u05e1\u05d9\u05e3 \u05dc\u05d0\u05ea\u05e8 \u05de\u05d9\u05d3\u05e2 \u05e0\u05d5\u05e1\u05e3 \u05e2\u05dc GitLab CI\/CD ? \u05e9\u05dc\u05d7\u05d5 \u05dc\u05e0\u05d5 \u05d0\u05ea\u00a0<a href=\"mailto:gitlab@almtoolbox.com?subject=Subscribe GitLab CI\/CD\">\u05d4\u05de\u05d9\u05d9\u05dc \u05d4\u05d1\u05d0<\/a>. \u05d0\u05e0\u05d5 \u05de\u05ea\u05d7\u05d9\u05d9\u05d1\u05d9\u05dd \u05dc\u05d0 \u05dc\u05e9\u05dc\u05d5\u05d7 SPAM .<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u05d1\u05ea\u05e7\u05d5\u05e4\u05d4 \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d4 \u05d9\u05e9\u05e0\u05d4 \u05d4\u05ea\u05e2\u05e0\u05d9\u05d9\u05e0\u05d5\u05ea \u05d2\u05d5\u05d1\u05e8\u05ea \u05d1- GitLab \u05d5\u05d1\u05e4\u05e8\u05d8 \u05d1\u05e8\u05db\u05d9\u05d1 \u05d4- CI\/CD \u05d4\u05de\u05ea\u05e7\u05d3\u05dd\u00a0 \u05e9\u05de\u05d2\u05d9\u05e2 built-in \u05d1\u05de\u05d5\u05e6\u05e8. \u05dc\u05d0\u05d5\u05e8 \u05d6\u05d0\u05ea \u05db\u05ea\u05d1\u05e0\u05d5 \u05dc\u05d0\u05d7\u05e8\u05d5\u05e0\u05d4 \u05db\u05de\u05d4 \u05ea\u05db\u05e0\u05d9\u05dd \u05d1\u05e0\u05d5\u05e9\u05d0 \u05d5\u05e7\u05d9\u05d9\u05de\u05e0\u05d5 \u05db\u05de\u05d4 \u05de\u05e4\u05d2\u05e9\u05d9\u05dd \u05d1\u05e0\u05d5\u05e9\u05d0 (\u05db\u05d5\u05dc\u05dd \u05de\u05d5\u05e7\u05dc\u05d8\u05d9\u05dd), \u05d5\u05e7\u05d9\u05d1\u05dc\u05e0\u05d5 \u05d4\u05e8\u05d1\u05d4 \u05e9\u05d0\u05dc\u05d5\u05ea \u05de\u05e2\u05e0\u05d9\u05d9\u05e0\u05d5\u05ea. \u05d1\u05de\u05d0\u05de\u05e8 \u05dc\u05d4\u05dc\u05df \u05d0\u05e0\u05d9 \u05de\u05ea\u05de\u05e7\u05d3 \u05d1\u05d0\u05d7\u05ea \u05d4\u05e9\u05d0\u05dc\u05d5\u05ea \u05e9\u05e0\u05e9\u05d0\u05dc\u05e0\u05d5 \u05db\u05de\u05d4 \u05e4\u05e2\u05de\u05d9\u05dd, \u05d5\u05d4\u05d9\u05d0: \u05d4\u05d0\u05dd \u05d0\u05e4\u05e9\u05e8 \u05dc\u05d7\u05d1\u05e8 \u05d1\u05d9\u05df GitHub \u05dc- GitLab CI\/CD ? \u05d5\u05dc\u05de\u05e2\u05e9\u05d4 \u05d5\u05d0\u05e8\u05d9\u05e6\u05d9\u05d4 \u05e9\u05dc \u05d4\u05e9\u05d0\u05dc\u05d4 [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":4408,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[69,96,111,112,76,28,167],"tags":[],"class_list":["post-4407","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-git","category-github","category-gitlab","category-gitlab-ci","category-jira","category-28","category-167"],"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/4407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/comments?post=4407"}],"version-history":[{"count":0,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/4407\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/media\/4408"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/media?parent=4407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/categories?post=4407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/tags?post=4407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}