github-pages-actions

Github Pages’ta statik dosyalari yayina kolayca alabiliyoruz. Fakat TypeScript kullanip HTML’de DOM elementleriyle birseyler göstermek istedik mi, yayina aldigimizda bilgilerin gelmedigini görürüz.

Gelmesini istedigim Proje:

mockshop-app

Fakat Gelen Proje:

mockshop-github-pages-easy

Yani hicbir bilgi döndüremiyoruz. Bunun icin bir kac dosya olusturup, yapilandirmalar yapip, yayina almamiz gerekiyor.

Ilk olarak ana dizinde yani src’nin oldugu ayni dizinde .github diye bir folder olustuyoruz. Bunun icinde workflows diye bir folder olusturuyoruz. Bunun icinde de deploy.yml diye bir dosya olusturuyoruz.

mockshop-github-pages-dizin

# Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

# Allow one concurrent deployment
concurrency:
  group: "pages"
  cancel-in-progress: true

jobs:
  # Single deploy job since we're just deploying
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Node
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: "npm"
      - name: Install dependencies
        run: npm ci
      - name: Build
        run: npm run build
      - name: Setup Pages
        uses: actions/configure-pages@v4
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          # Upload dist folder
          path: "./dist"
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

Bu kod parçası, GitHub Actions workflow'unu tanımlayan bir YML dosyasıdır. Bu workflow, projenizi GitHub Pages'a otomatik olarak dağıtmak (deploy etmek) için kullanılır. İşte bu kodun ana bileşenleri:

  • Checkout: Projenin kaynak kodunu alır.
  • Set up Node: Node.js ortamını kurar ve npm cache'ini yapılandırır.
  • Install dependencies: Proje bağımlılıklarını yükler.
  • Build: Projeyi derler (build eder).
  • Setup Pages: GitHub Pages'ı yapılandırır.
  • Upload artifact: Derlenen projeyi (dist klasörünü) GitHub'a yükler.
  • Deploy to GitHub Pages: Projeyi GitHub Pages'a dağıtır.

Bu workflow, projenizi otomatik olarak derleyip GitHub Pages'a yükleyerek, TypeScript projelerinizi kolayca yayınlamanıza olanak sağlar.

Github Actions Ayarlama

bunu yaptiktan sonra vscode sag alt kosede GitHub Actions kurulumu yapalim mi diye soruyor. Oradan ok diyebiliriz, yahut alternatif vscode’da eklentiler sekmesinde GitHub Actions’u aratarak kurulumu gerceklestirebiliriz.

Vite.config.ts

Daha sonrasinda ben vite kullaniyorum, vite.config.js dosyasi olusturuyorum ana dizinde.

import { defineConfig } from "vite";

export default defineConfig({
  base: "",
});

Bu kod parçası, Vite için bir yapılandırma dosyasıdır.

  • import { defineConfig } from "vite"; - Bu satır, Vite'ın yapılandırma fonksiyonunu içe aktarır.
  • export default defineConfig({...}); - Bu, Vite'ın yapılandırma nesnesini tanımlar ve dışa aktarır.
  • base: "", - Bu ayar, uygulamanın kök yolunu belirler. Boş bir string olarak ayarlanması, uygulamanın herhangi bir alt dizinde çalışabileceği anlamına gelir.

Bu yapılandırma, özellikle GitHub Pages gibi platformlarda projenizi yayınlarken faydalıdır. Boş bir base ayarı, projenizin farklı alt dizinlerde veya kök dizinde sorunsuz çalışmasını sağlar.

Sonrasinda npm run build deyip github’a push ederiz dosyalarimizi.

Github Kismi

Github Repomuzun settings sekmesinden Pages secenegini seciyoruz

github-actions-deployment

Burada Build and Deployment kisminda kaynak olarak Github Actions’u seciyoruz. Ve projemiz birkac dakika icerisinde yayina aliniyor.

Resimde, GitHub Actions'ın bir iş akışını (workflow) başarıyla tamamladığını gösteriyor.

Bu süreç, projenizi otomatik olarak derleyip GitHub Pages'a yükleyerek, TypeScript projelerinizi kolayca yayınlamanıza olanak sağlar. Resimde görülen yeşil işaretler ve "Completed successfully" ifadesi, tüm adımların başarıyla tamamlandığını gösteriyor.

Bu otomatik dağıtım süreci, her kod değişikliğinde veya belirli bir dalda (branch) güncelleme olduğunda tetiklenebilir, böylece projenizin her zaman güncel bir sürümü yayında olur.

Ve projemizin son halinin github’taki canli halinin linkini paylasiyorum.

https://snahmd.github.io/mockshop/

Ve bu projenin adim adim anlatildigi blog yazisina da buradan ulasabilirsiniz:

Bir sonraki yazida görüsmek üzere.

Yorum yap