{"id":16971,"date":"2025-04-02T14:45:14","date_gmt":"2025-04-02T11:45:14","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/"},"modified":"2025-04-02T14:45:14","modified_gmt":"2025-04-02T11:45:14","slug":"depo-icerigine-gore-dinamik-github-actions-olusturma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/","title":{"rendered":"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma"},"content":{"rendered":"<p><body><\/p>\n<p>Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma<\/p>\n<p>Merhaba!  Fatih Soysal olarak, bug\u00fcn size GitHub Actions&#8217;lar\u0131n\u0131z\u0131 deponuzdaki dosya ve klas\u00f6r yap\u0131s\u0131na ba\u011fl\u0131 olarak dinamik bir \u015fekilde nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim.  Bu yakla\u015f\u0131m,  tekrarlayan i\u015fleri otomatikle\u015ftirmek ve  projenizin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f CI\/CD s\u00fcre\u00e7leri olu\u015fturmak i\u00e7in son derece g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir.  \u00d6rne\u011fin, farkl\u0131 t\u00fcrdeki dosyalara g\u00f6re farkl\u0131 testler \u00e7al\u0131\u015ft\u0131rmak veya  belirli bir klas\u00f6rdeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 kullanarak da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini y\u00f6netmek gibi i\u015flemler i\u00e7in bu tekni\u011fi kullanabilirsiniz.<\/p>\n<p><strong>Neden Dinamik GitHub Actions?<\/strong>  Statik olarak tan\u0131mlanan Actions&#8217;lar, projenizin yap\u0131s\u0131nda de\u011fi\u015fiklik oldu\u011funda g\u00fcncellenmesi gereken sabit workflow&#8217;lar olu\u015fturur.  Bu durum, \u00f6zellikle b\u00fcy\u00fck ve karma\u015f\u0131k projelerde y\u00f6netimi zorla\u015ft\u0131rabilir.  Dinamik Actions&#8217;lar ise, deponuzdaki i\u00e7eri\u011fi okuyarak,  workflow&#8217;u \u00e7al\u0131\u015fma zaman\u0131nda olu\u015fturarak bu sorunu \u00e7\u00f6zer.  Bu sayede, projenizin yap\u0131s\u0131 de\u011fi\u015fti\u011finde Actions&#8217;lar\u0131n\u0131z\u0131 manuel olarak de\u011fi\u015ftirmeniz gerekmez.<\/p>\n<h2>Temel Kavramlar ve Ara\u00e7lar<\/h2>\n<p>Dinamik GitHub Actions olu\u015fturmak i\u00e7in,  \u00f6zellikle iki \u00f6nemli tekni\u011fe a\u015fina olman\u0131z gerekir:  **Inputlar ve Matrix stratejileri** ile birle\u015ftirilen **Shell komutlar\u0131**. GitHub Actions&#8217;\u0131n sa\u011flad\u0131\u011f\u0131 input parametrelerini kullanarak workflow&#8217;unuza d\u0131\u015far\u0131dan de\u011fi\u015fkenler aktarabilirsiniz. Matrix stratejileri ise, ayn\u0131 workflow&#8217;u farkl\u0131 parametre kombinasyonlar\u0131yla paralel olarak \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r. Shell komutlar\u0131yla ise deponuzdaki dosyalar\u0131 listeleyebilir,  i\u00e7eriklerini okuyabilir ve buna g\u00f6re workflow&#8217;unuzu y\u00f6nlendirebilirsiniz.<\/p>\n<h2>\u00d6rnek Senaryo: Farkl\u0131 Diller \u0130\u00e7in Testler \u00c7al\u0131\u015ft\u0131rma<\/h2>\n<p>\u00d6rne\u011fin, deponuzda farkl\u0131 programlama dillerinde yaz\u0131lm\u0131\u015f kodlar bulunsun ve her dil i\u00e7in farkl\u0131 test komutlar\u0131 \u00e7al\u0131\u015ft\u0131rmak isteyin.  Bu durumda, dinamik bir Actions workflow&#8217;u kullanarak her dil i\u00e7in uygun testleri otomatik olarak \u00e7al\u0131\u015ft\u0131rabilirsiniz.  Bu, depo i\u00e7eri\u011fini analiz ederek,  bulunan diller i\u00e7in bir matris olu\u015fturarak ve her matris sat\u0131r\u0131na g\u00f6re farkl\u0131 test komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rarak yap\u0131labilir.<\/p>\n<pre><code class=\"language-yaml\">\nname: Dynamic Tests\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        lang: ${{ fromJson(steps.list_langs.outputs.languages) }}\n\n    steps:\n      - name: List Languages\n        id: list_langs\n        run: |\n          echo \"::set-output name=languages::$(find . -maxdepth 1 -type d -name 'python' -o -name 'java' -o -name 'javascript' -print0 | xargs -0 printf '%s,' | sed 's\/,$\/\/')\"\n          \n      - name: Set up ${{ matrix.lang }}\n        uses: actions\/setup-${{ matrix.lang }}@v1\n        with:\n          ${{ matrix.lang }}: ${{ matrix.lang }}\n          \n      - name: Run Tests\n        run: ${{ matrix.lang == 'python' && 'python -m unittest' || matrix.lang == 'java' && 'mvn test' || matrix.lang == 'javascript' && 'npm test' }}\n\n<\/code><\/pre>\n<p>Yukar\u0131daki \u00f6rnekte,  <code>find<\/code> komutu ile depoda python, java ve javascript klas\u00f6rleri aran\u0131r ve bu klas\u00f6rlerin isimleri bir de\u011fi\u015fkene atan\u0131r.  Daha sonra bu de\u011fi\u015fken, matrix stratejisi ile birle\u015ftirilerek her dil i\u00e7in ayr\u0131 bir test ad\u0131m\u0131 \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r.  Bu \u00f6rnekte,  her dil i\u00e7in farkl\u0131 test komutlar\u0131 ko\u015fullu olarak \u00e7al\u0131\u015ft\u0131r\u0131lmaktad\u0131r.  Daha geli\u015fmi\u015f senaryolar i\u00e7in,  daha karma\u015f\u0131k komutlar ve ko\u015fullar kullanabilirsiniz.  Bu \u015fekilde projenizin ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirebilece\u011finiz dinamik bir sistem olu\u015fturabilirsiniz.<\/p>\n<h2>\u0130pu\u00e7lar\u0131 ve \u0130leri Seviye Teknikler<\/h2>\n<p>Daha karma\u015f\u0131k senaryolar i\u00e7in,  depo i\u00e7eri\u011fini analiz etmek ve workflow&#8217;u olu\u015fturmak i\u00e7in daha g\u00fc\u00e7l\u00fc ara\u00e7lar kullanabilirsiniz.  \u00d6rne\u011fin, Python gibi programlama dilleri kullanarak daha karma\u015f\u0131k analizler yapabilir ve workflow&#8217;u programatik olarak olu\u015fturabilirsiniz.<\/p>\n<p>Ayr\u0131ca,  GitHub Actions&#8217;\u0131n sa\u011flad\u0131\u011f\u0131 di\u011fer \u00f6zelliklerden de yararlanarak workflow&#8217;unuzu daha da geli\u015ftirebilirsiniz.  \u00d6rne\u011fin,  caching,  artifacts ve dependency management gibi \u00f6zellikler,  dinamik workflow&#8217;lar\u0131n\u0131z\u0131n performans\u0131n\u0131 ve g\u00fcvenilirli\u011fini art\u0131rman\u0131za yard\u0131mc\u0131 olabilir.<\/p>\n<p>Umar\u0131m bu makale,  GitHub Actions&#8217;lar\u0131n\u0131z\u0131 deponuzdaki i\u00e7eri\u011fe g\u00f6re dinamik olarak olu\u015fturman\u0131zda size yard\u0131mc\u0131 olmu\u015ftur. Daha fazla bilgi ve \u00f6rnek i\u00e7in,  <a href=\"https:\/\/dev.to\/diploi\/how-to-create-dynamic-github-actions-based-on-the-contents-of-a-repository-50j8\">buraya<\/a> ve <a href=\"https:\/\/fatihsoysal.com\">kendi web sitemi<\/a> ziyaret edebilirsiniz.  Sorular\u0131n\u0131z ve yorumlar\u0131n\u0131z i\u00e7in,  her zaman bekliyorum!<\/p>\n<p>#Etiketler: GitHub Actions, Dinamik Workflow, CI\/CD, Depo \u0130\u00e7eri\u011fi, \u00d6zelle\u015ftirme, Otomasyon, Fatih Soysal,  Shell Komutlar\u0131, Matrix Stratejileri, Inputlar,  Test Otomasyonu<\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma Merhaba! Fatih Soysal olarak, bug\u00fcn size GitHub Actions&#8217;lar\u0131n\u0131z\u0131 deponuzdaki dosya ve&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-16971","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma<\/title>\n<meta name=\"description\" content=\"Merhaba! Fatih Soysal olarak, bug\u00fcn size GitHub Actions&#039;lar\u0131n\u0131z\u0131 deponuzdaki dosya ve klas\u00f6r yap\u0131s\u0131na ba\u011fl\u0131 olarak dinamik bir \u015fekilde nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu yakla\u015f\u0131m, tekrarlayan i\u015fleri otomatikle\u015ftirmek ve projenizin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f CI\/CD s\u00fcre\u00e7leri olu\u015fturmak i\u00e7in son derece g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir. \u00d6rne\u011fin, farkl\u0131 t\u00fcrdeki dosyalara g\u00f6re farkl\u0131 testler \u00e7al\u0131\u015ft\u0131rmak veya belirli bir klas\u00f6rdeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 kullanarak da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini y\u00f6netmek gibi i\u015flemler i\u00e7in bu tekni\u011fi kullanabilirsiniz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma\" \/>\n<meta property=\"og:description\" content=\"Merhaba! Fatih Soysal olarak, bug\u00fcn size GitHub Actions&#039;lar\u0131n\u0131z\u0131 deponuzdaki dosya ve klas\u00f6r yap\u0131s\u0131na ba\u011fl\u0131 olarak dinamik bir \u015fekilde nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu yakla\u015f\u0131m, tekrarlayan i\u015fleri otomatikle\u015ftirmek ve projenizin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f CI\/CD s\u00fcre\u00e7leri olu\u015fturmak i\u00e7in son derece g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir. \u00d6rne\u011fin, farkl\u0131 t\u00fcrdeki dosyalara g\u00f6re farkl\u0131 testler \u00e7al\u0131\u015ft\u0131rmak veya belirli bir klas\u00f6rdeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 kullanarak da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini y\u00f6netmek gibi i\u015flemler i\u00e7in bu tekni\u011fi kullanabilirsiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-02T11:45:14+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma\",\"datePublished\":\"2025-04-02T11:45:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/\"},\"wordCount\":627,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/\",\"name\":\"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-04-02T11:45:14+00:00\",\"description\":\"Merhaba! Fatih Soysal olarak, bug\u00fcn size GitHub Actions'lar\u0131n\u0131z\u0131 deponuzdaki dosya ve klas\u00f6r yap\u0131s\u0131na ba\u011fl\u0131 olarak dinamik bir \u015fekilde nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu yakla\u015f\u0131m, tekrarlayan i\u015fleri otomatikle\u015ftirmek ve projenizin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f CI\/CD s\u00fcre\u00e7leri olu\u015fturmak i\u00e7in son derece g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir. \u00d6rne\u011fin, farkl\u0131 t\u00fcrdeki dosyalara g\u00f6re farkl\u0131 testler \u00e7al\u0131\u015ft\u0131rmak veya belirli bir klas\u00f6rdeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 kullanarak da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini y\u00f6netmek gibi i\u015flemler i\u00e7in bu tekni\u011fi kullanabilirsiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma","description":"Merhaba! Fatih Soysal olarak, bug\u00fcn size GitHub Actions'lar\u0131n\u0131z\u0131 deponuzdaki dosya ve klas\u00f6r yap\u0131s\u0131na ba\u011fl\u0131 olarak dinamik bir \u015fekilde nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu yakla\u015f\u0131m, tekrarlayan i\u015fleri otomatikle\u015ftirmek ve projenizin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f CI\/CD s\u00fcre\u00e7leri olu\u015fturmak i\u00e7in son derece g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir. \u00d6rne\u011fin, farkl\u0131 t\u00fcrdeki dosyalara g\u00f6re farkl\u0131 testler \u00e7al\u0131\u015ft\u0131rmak veya belirli bir klas\u00f6rdeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 kullanarak da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini y\u00f6netmek gibi i\u015flemler i\u00e7in bu tekni\u011fi kullanabilirsiniz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/","og_locale":"tr_TR","og_type":"article","og_title":"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma","og_description":"Merhaba! Fatih Soysal olarak, bug\u00fcn size GitHub Actions'lar\u0131n\u0131z\u0131 deponuzdaki dosya ve klas\u00f6r yap\u0131s\u0131na ba\u011fl\u0131 olarak dinamik bir \u015fekilde nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu yakla\u015f\u0131m, tekrarlayan i\u015fleri otomatikle\u015ftirmek ve projenizin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f CI\/CD s\u00fcre\u00e7leri olu\u015fturmak i\u00e7in son derece g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir. \u00d6rne\u011fin, farkl\u0131 t\u00fcrdeki dosyalara g\u00f6re farkl\u0131 testler \u00e7al\u0131\u015ft\u0131rmak veya belirli bir klas\u00f6rdeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 kullanarak da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini y\u00f6netmek gibi i\u015flemler i\u00e7in bu tekni\u011fi kullanabilirsiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-04-02T11:45:14+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"4 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma","datePublished":"2025-04-02T11:45:14+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/"},"wordCount":627,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/","url":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/","name":"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-04-02T11:45:14+00:00","description":"Merhaba! Fatih Soysal olarak, bug\u00fcn size GitHub Actions'lar\u0131n\u0131z\u0131 deponuzdaki dosya ve klas\u00f6r yap\u0131s\u0131na ba\u011fl\u0131 olarak dinamik bir \u015fekilde nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu yakla\u015f\u0131m, tekrarlayan i\u015fleri otomatikle\u015ftirmek ve projenizin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f CI\/CD s\u00fcre\u00e7leri olu\u015fturmak i\u00e7in son derece g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir. \u00d6rne\u011fin, farkl\u0131 t\u00fcrdeki dosyalara g\u00f6re farkl\u0131 testler \u00e7al\u0131\u015ft\u0131rmak veya belirli bir klas\u00f6rdeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 kullanarak da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini y\u00f6netmek gibi i\u015flemler i\u00e7in bu tekni\u011fi kullanabilirsiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/depo-icerigine-gore-dinamik-github-actions-olusturma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Depo \u0130\u00e7eri\u011fine G\u00f6re Dinamik GitHub Actions Olu\u015fturma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/16971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=16971"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/16971\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=16971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=16971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=16971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}