VPN termux about China.net

Webasembly no.2 (ai)

 EFEKT KOŃCOWY

Założyłem nowe repozytorium na GitHub, np. wasm 

Dodałem prosty plik C – hello.c

W katalogu .github/workflows/ stworzyłem plik main.yml. Oto jego treść:

######

name: Compile C to WebAssembly and Deploy

on:

  push:

    branches:

      - main


jobs:

  build-and-deploy:

    runs-on: ubuntu-latest


    steps:

      - name: Checkout repository

        uses: actions/checkout@v4


      - name: Install Emscripten

        run: |

          git clone https://github.com/emscripten-core/emsdk.git

          cd emsdk

          ./emsdk install latest

          ./emsdk activate latest

        shell: bash


      - name: Compile C to WebAssembly

        run: |

          source emsdk/emsdk_env.sh

          mkdir dist

          emcc hello.c -o dist/index.html

        shell: bash


      - name: Deploy to GitHub Pages

        uses: peaceiris/actions-gh-pages@v4

with:github_token:${{secrets.GITHUB_TOKEN }}

          publish_dir: ./dist


########

error 128 nie ma uprawnień do zapisu w gh-pages 

Aby GitHub Actions mogło pisać do gałęzi gh-pages, trzeba było ustawić uprawnienia:


Przejdź do Settings → Actions → General


W sekcji Workflow permissions:


Zmień z Read access na Read and write permissions


Kliknij Save


Bez tego deploy nie zadziała — akcja nie ma wtedy prawa tworzyć ani aktualizować gałęzi gh-pages.


🚀 5. Publikacja strony

Po zatwierdzeniu zmian (git push na main), GitHub Actions:


skompilował hello.c do index.html, index.js, index.wasm


umieścił wszystko w folderze dist/


opublikował zawartość jako stronę GitHub Pages


Konfiguracja GitHub Pages:

W repozytorium:


Wejdź w Settings → Pages


Wybierz:


Branch: gh-pages


Folder: / (root)


Kliknij Save


Strona była gotowa pod:

📎 https://notepadpl.github.io/wasm/


🐛 Problemy po drodze

Strona wyświetlała kod HTML jako tekst — GitHub traktował pliki jak zwykłe pliki repozytorium


Rozwiązanie: poprawne ustawienie GitHub Pages + użycie index.html


Akcja nie mogła pisać do gh-pages — trzeba było zmienić uprawnienia Actions na "Read and write"


Brak folderu dist/ — bez tego deploy zawierał niepotrzebne pliki


✅ Efekt końcowy

Po poprawkach wszystko działa automatycznie:


pushuję nową wersję hello.c


GitHub Actions kompiluje i publikuje nowe WebAssembly


strona się aktualizuje









No comments:

Post a Comment