DOMANART.pl

Powrót

Git Actions

Przerzuciłem sobie bloga na Astro.js, bo w porównaniu z Hugo wydaje się łatwiejszy. A przy tak nędznie prostym blogu jak mój cokolwiek bym nie użył (nawet czysty HTML) to i tak by się sprawdziło. Jedyna upierdliwa rzecz (ale to samo działo się przy Hugo) to konieczność budowania całości i wrzucania wygenerowanych stron na serwer. Bloga trzymam na GitHub. Aby usprawnić sobie cały proces, skorzystałem z Git Actions. Ekspertem od tego nie jestem. Z tego co zauważyłem, buduje się je z gotowych klocków, czy raczej modułów.

Wpierw wszedłem na https://github.com/USERNAME/blog/actions/new

Następnie kliknąłem na górze strony w “set up a workflow yourself” (tuż pod tytułem). Następnie korzystając z przykłądów w necie, nastu commitach z poprawkami doszedłem do czegoś takiego:


on: push
name: Deploy website on push
jobs:
  web-deploy:
    name: Deploy
    runs-on: ubuntu-latest
    steps:
    - name: Get latest code
      uses: actions/checkout@v3

    - name: Setup Node
      uses: actions/setup-node@v3

    - name: Install packages
      shell: "bash"
      run: |
        npm install

    - name: Run build
      shell: "bash"
      run: |
        npm run build

    - name: Sync files to ftp serwer
      uses: SamKirkland/FTP-Deploy-Action@v4.3.4
      with:
        server: ${{ secrets.FTP_URL }}
        username: ${{ secrets.FTP_USER }}
        port: 21
        password: ${{ secrets.FTP_PASSWORD }}
        protocol: ftps
        local-dir: dist/
        server-dir: public_html/blog/

Na początku pobieram najnowszą wersję kodu. Potem instaluję wszystkie paczki, odpalam polecenie npm run build by zbudować katalog dist. Następnie z katalogu dist wrzucam zmienione pliki na mój serwer, gdzie blog mieści się w katalogu public_html/blog. Do wrzucenia korzystam z modułu SamKirkland/FTP-Deploy-Action@v4.3.4. Mała uwaga - plugin ten wymaga by ścieżki do katalogów kończyć znakiem /. Nazwę serwera, użytkownika i hasło trzymam jako sekrety. Ustawia się je w zakładce Settings->Secrets and variables->Actions (https://github.com/USERNAME/blog/settings/secrets/actions). I w zasadzie tyle. Po zrobieniu commit, akcje automatycznie się odpalają i zmodyfikowane pliki trafiają na serwer.