Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
GitHub Actions Nedir? Workflow, Event, Job, Step ve Runner ile İlk CI
GitHub Actions, repository'deki event'lere göre .github/workflows altındaki YAML workflow'larını runner'larda koşturan CI/CD platformudur. Bookstore API için restore, build ve unit test yapan ilk workflow'u yazıp act ve actionlint ile yerelde deniyor; uses ile run farkını, run log'unu, re-run'ı ve Web API 31'deki workflow'un nedenlerini konuşuyoruz.
GitHub Actions'ta Expression, Context ve Variable'lar: if, outputs ve GITHUB_ENV
${{ }} içindeki expression'lar context'lerden (github, env, vars, steps, needs, inputs…) değer okur, loose karşılaştırma yapar ve if: koşullarını belirler. if içinde ${{ }} dışında metin bırakmanın neden her zaman doğru sayıldığını, contains/fromJSON/hashFiles/case fonksiyonlarını, GITHUB_OUTPUT ve GITHUB_ENV ile veri taşımayı, GITHUB_STEP_SUMMARY ile test tablosunu ve always ile !cancelled farkını act çıktılarıyla gösteriyoruz.
GitHub Actions'ta Job'lar: needs, matrix, concurrency, timeout ve Service Container'lar
Job'lar varsayılan olarak paralel koşar; needs ile bir DAG kurulur, kırılan job'a bağlı her şey skipped olur. Bookstore CI'ını format, unit-test (OS matrix), integration-test (PostgreSQL 16/17/18 service container), web-build ve publish job'larına bölüp act ile koşturuyor; include/exclude, fail-fast, max-parallel, concurrency, timeout-minutes, continue-on-error ve Nisan 2026'da gelen service command/entrypoint'i inceliyoruz.
GitHub Actions ile .NET CI: setup-dotnet, global.json, NuGet Cache, Test Raporu ve Coverage
.NET 10 CI'ında SDK'yı global.json ve setup-dotnet@v6 ile sabitle, restore'u lock dosyaları ve --locked-mode ile yap, NuGet cache'ini lock hash'ine bağla, dotnet format ve -warnaserror ile kapı koy. xUnit v3'ün Microsoft.Testing.Platform modunda TRX ve Cobertura raporu üretip job summary'ye yazıyor, upload-artifact ile saklıyoruz; act'in v7 artifact sınırını ve Linux'taki dosya adı tuzağını da gerçek çıktılarla gösteriyoruz.
Eski GitHub Actions Workflow'larını Okumak: set-output'tan GITHUB_OUTPUT'a, Node 12/16/20'den Node 24'e
Eski bir workflow'u güncellerken runner label'ını, action major'larını, SDK kaynağını, workflow komutlarını ve cache key'ini birlikte değiştir: ubuntu-18.04, @v2 action'lar ve ::set-output 2026'da ya çalışmıyor ya uyarı veriyor. 2018–2026 zaman çizelgesi, Node 12→24 geçişleri, 2021 tarzı .NET 5 workflow'unun actionlint ve act çıktısı, .NET 10'a taşıma checklist'i ve 2026 özeti.