Sovelluksen automaattisen julkaisun työnkulku

Seuraavaksi teemme GitHub Actions -työnkulun, joka tekee uuden julkaisun aina, kun GitHubiin tehdään uusi release-julkaisu. Työnkulku on käytännössä hyvin pitkälle sama kuin manuaalisessa käynnistyksessä, ainoastaan käynnistysehto muutetaan.

Aktivoi ensin Actions sivun yläreunan toimintolinkeistä, aloita uuden työnkulun luominen painamalla New workflow-nappia ja klikkaamalla set up a workflow yourself-linkkiä.

Anna työnkulun nimeksi deploy-release.yml ja syötä työnkuluksi seuraava teksti:

name: Release deploy to neutroni

on:
  release:

jobs:
  deploy:
    name: Deployment
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: "8.2"

      - name: Deploy
        uses: deployphp/action@master
        with:
          private-key: ${{ secrets.PRIVATE_KEY }}
          known-hosts: ${{ secrets.KNOWN_HOSTS }}
          dep: deploy
          deployer-version: "6.8.0"

Tallenna määritystiedosto klikkaamalla vihreää Start commit -nappia ja avautuvasta ikkunasta Commit new file -nappia. Halutessasi voit kirjoittaa commitille kuvaustekstin.

Uuden automaattisen työnkulun lisääminen

Automaattisen työnkulun testaaminen

Seuraavaksi testaamme automaattisen työnkulun toimintaa tekemällä ensin sovellukseen kaksi muutosta ja tekemällä muutoksista uuden Release-julkaisun.

  1. Ensimmäisessä muutoksessa lisäämme uuden fonttivaihtoehdon käytettäviin fontteihin. Muokkaa projektin juuressa (~/public_html/perhekalenteri-dev) olevaa globals.php-tiedostoa. Muokkaa $headerfonts-taulukon sisältöä niin, että taulukon loppuosa osa seuraavanlainen. Huomaa myös lisätä alkuperäisen taulukon viimeisen alkion loppuun tullut pilkku.

        ... taulukon alku on sama 
        "sigmarone" => array(
          "name" => "Sigmar One",
          "url"  => "https://fonts.googleapis.com/css2?family=Sigmar+One&display=swap"),
        "titanone" => array(
          "name" => "Titan One",
          "url"  => "https://fonts.googleapis.com/css2?family=Titan+One&display=swap")
      );
    

    Testataan sivun toiminta osoitteessa https://neutroni.hayo.fi/~tunnus/perhekalenteri-dev, valitaan otsikkofontiksi Titan One ja avataan kalenterisivu.

    Kalenterisovelluksen testaaminen

    Viedään tämä muutos versiohallintaan. git pull -komento noutaa GitHub-reposta sinne tehdyt muutokset paikallisesti. Yhdistämisen saattaa avata sinulle editorin, jossa sinulta kysytään yhdistämisen commit-tekstiä, voit hyväksyä tarjotun tekstin tallentamalla ja poistumalla editorista.

    cd ~/public_html/perhekalenteri-dev
    git add .
    git commit -m "Titan One lisätty otsikkofonttilistalle"
    git pull 
    git push
    
  2. Muutetaan seuraavaksi nimilistaa niin, että kentässä näkee useamman nimen saman aikaisesti. Muokkaa projektin juuressa (~/public_html/perhekalenteri-dev) olevaa index.php-tiedostoa. Muokkaa Perheenjäsenet-kohdan merkkausta seuraavanlaiseksi:

            Perheenjäsenet:
            <textarea name="names" rows="5"><?= $defaultnames ?></textarea><br>
    

    Testataan jälleen kerran muutoksen toimivuutta menemällä osoitteeseen https://neutroni.hayo.fi/~tunnus/perhekalenteri-dev. Syötekenttä perheenjäsenten nimien syöttämiseen on nyt viisi riviä korkea.

    Kalenterisovelluksen testaaminen

    Viedään tämä muutos versiohallintaan. git pull -komento ei tee tällä kertaa mitään, koska GitHubin repoon ei ole tullut uutta sisältöä, jota ei olisi paikallisesti.

    cd ~/public_html/perhekalenteri-dev
    git add .
    git commit -m "Perheenjäsenet-tekstialueen korkeutta lisätty"
    git pull 
    git push
    

Näiden kahden muutosten jälkeen voimme tehdä GitHubissa uuden release-julkaisun. Klikkaa GitHub-projektin pääsivun oikeassa laidassa olevaa Releases-otsikkoa.

Projektin pääsivu

Klikkaa Releases-sivulla olevaa Draft a new release -nappia.

Projektin Releases-sivu

Klikkaa Choose a tag -nappia, kirjoita kenttään teksti v1.0.1 ja klikkaa Create a new tag -kentän alapuolelta. Kirjoita haluamasi sisältö julkaisun otsikoksi ja tekstiksi. Paina lopuksi Publish release-nappia.

Uuden julkaisun tiedot

Kun menet GitHub-projektin Actions-sivulle, niin näet käynnistyikö julkaisu automaattisesti ja onnistuiko julkaisun tekeminen.

Työnkulkujen suoritusloginäkymä

Loginäkymästä ilmenee, että release-julkaisu käynnisti työkulun kolmeen kertaan, joista yksi onnistui (published) ja loput kaksi epäonnistuivat (created ja released). Korjataan työkulkua niin, että työnkulku suoritaan ainoastaan silloin, kun uusi release-julkaisu tehdään julkiseksi. Muokkaa .github/workflows-kansiossa olevaa deploy-release.yml-tiedostoa. Muuta työnkulun käynnistysmäärittely seuraavanlaiseksi:

on:
  release:
    types: [published]    

Hyväksy muutos klikkaamalla Start commit -nappia, kirjoita haluamasi commit-teksti ja klikkaa lopuksi Commit changes-nappia.

deploy-release -työnkulun korjaaminen

Voit testata muutoksen toimintaa käymällä muokkaamassa viimeisimmän Release-julkaisun tietoja ja hyväksymällä muutokset klikkaamalla Update release-nappia. Tietoihin itsessään ei tarvitse tehdä muutoksia. Tämä käynnistää työnkulun ainoastaan kerran.

Työnkulkujen suoritusloginäkymä