Uppdatera git på ssh servern med en webhook

Med reservation för att vi använder helt fel utryck här har vi försökt skriva en manual om hur du får git att själv hämta en uppdatering och publicera på vår ftpserver. Via vår kära ssh server.

Det finns en webbserver på ssh servern som du kan anropa med en git webhook.

För att få igång det behöver du göra följande steg:

Steg 0) har du haft SSH aktivt innan 2013-04-01 behöver du återaktivera din åtkomst, du behöver alltså först stänga av den i vår kundzon och sen aktivera den igen. (vi har uppdaterat användardatabasen)

Steg 1) Du behöver sätta mer generösa behörigheter på din hemmamapp, så att webbservern får åtkomst till den. Kör kommandot 

chmod o+x ~

Steg 2) Du behöver skapa en egen webbroot för ssh webbservern, kör kommandot 

mkdir ~/public_html

Steg 3) Skapa en index.php fil, typ 

nano ~/public_html/index.php

Lägg in följande kod:

Nedanstående kod på github

<?php 
try {
    // Decode JSON data from Github
    $payload = json_decode($_REQUEST['payload']);
}
catch(Exception $e) {
    exit(0);
}
 
// Deploy live if push was on master branch
if ($payload->ref === 'refs/heads/master') {
    exec('./deploy-master.sh');
}
 
// Deploy staging if push was on stage branch
if ($payload->ref === 'refs/heads/stage') {
    exec('./deploy-stage.sh');
}

Steg 4) Skapa en deploy-master.sh fil, typ 

nano ~/public_html/deploy-master.sh
#!/bin/sh

cd ~/dindomän.se/
git fetch --all
git reset --hard origin/master

Steg 5) Lägg till en Service Hooks, Webhooks URL mot http://ssh.i8t.com:8080/~userid/phpfil

Steg 6) Nu är du en bit på väg och bör klara lista ut resten själv, och sen maila Niklas hur man gör så han kan uppdatera wikin.

Annat

Webbservern på ssh servern svarar på http://ssh.i8t.com:8080/ och på https://ssh.i8t.com:8443/

Givetvis är den inte till för att köra en hemsida på, utan för att du ska kunna automatisera ditt arbete.

Får du permission denied så beror det på att du missat steg 0 eller 1.

Har du fler frågor? Skicka en förfrågan

0 Kommentarer

logga in för att lämna en kommentar.
Powered by Zendesk