Developers · Receptes per al teu CI
El teu CI, desplegant a SWPanel
Copia la recepta de la teva eina, desa el teu token com a secret i fes push. SWPanel rep el paquet, el valida, l'analitza i el publica al teu hosting o al teu Cloud, amb una còpia del que hi havia.
- GitHub Actions, GitLab CI, Bitbucket i Jenkins
- Mode de prova per a les pull requests
- Tornada enrere en una crida
~/mi-web npm run build && tar -czf web.tgz -C dist .~/mi-web curl -X POST …/services/$SERVICIO/deployment/ \ -H "Authorization: Bearer $SWPANEL_TOKEN" -F "[email protected]"Paquet rebut sencer ok SHA-256Validat ok rutes, mida i fitxersAnalitzat ok sense errors greusCòpia del que hi havia, desada okPublicat a la teva web ok
Abans de començar
Tres coses i ja pots desplegar
-
Crea un token a SWPanel
Millor un de només desplegament, limitat al servei on publicaràs, amb caducitat i les teves IP.
-
Desa'l com a secret
Al teu CI, amb el nom
SWPANEL_TOKEN. Mai al repositori. -
Apunta el servei
L'identificador del hosting o del Cloud on viu la teva web, a la variable
SERVICIO.
Receptes
Tria la teva eina, copia i enganxa
Totes fan el mateix: construeixen la web com sempre, l'empaqueten i la pugen amb una crida a l'API.
on:
push:
branches: [main]
jobs:
desplegar:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build && tar -czf web.tgz -C dist .
- run: |
curl -X POST \
https://api.swpanel.com/public/services/$SERVICIO/deployment/ \
-H "Authorization: Bearer ${{ secrets.SWPANEL_TOKEN }}" \
-F "[email protected]"
# S'executa a cada push a main
desplegar:
stage: deploy
image: node:20
rules:
- if: $CI_COMMIT_BRANCH == "main"
script:
- npm ci && npm run build && tar -czf web.tgz -C dist .
- >
curl -X POST
"https://api.swpanel.com/public/services/$SERVICIO/deployment/"
-H "Authorization: Bearer $SWPANEL_TOKEN"
-F "[email protected]"
# S'executa a cada push a main
image: node:20
pipelines:
branches:
main:
- step:
name: Desplegar en SWPanel
script:
- npm ci && npm run build && tar -czf web.tgz -C dist .
- curl -X POST "https://api.swpanel.com/public/services/$SERVICIO/deployment/"
-H "Authorization: Bearer $SWPANEL_TOKEN"
-F "[email protected]"
# S'executa a cada push a main
pipeline {
agent any
environment { SWPANEL_TOKEN = credentials('swpanel-token') }
stages {
stage('Construir') {
steps { sh 'npm ci && npm run build && tar -czf web.tgz -C dist .' }
}
stage('Desplegar') {
when { branch 'main' }
steps {
sh 'curl -X POST "https://api.swpanel.com/public/services/$SERVICIO/deployment/" -H "Authorization: Bearer $SWPANEL_TOKEN" -F "[email protected]"'
}
}
}
}
// El token, desat com a credencial de Jenkins
tar -czf web.tgz -C dist . curl -X POST "https://api.swpanel.com/public/services/$SERVICIO/deployment/" \ -H "Authorization: Bearer $SWPANEL_TOKEN" \ -F "[email protected]" # Des del teu terminal o des de qualsevol script
composer install --no-dev tar -czf tema.tgz -C wp-content/themes/mi-tema . curl -X POST "https://api.swpanel.com/public/services/$SERVICIO/deployment/" \ -H "Authorization: Bearer $SWPANEL_TOKEN" \ -F "[email protected]" # El teu tema, des del repositori, sense tocar wp-config.php ni les pujades
Receptes d'exemple. Totes les opcions de la crida (mode de prova, branca, commit i fitxers protegits) són a la documentació de l'API.
Pull requests
Prova-ho abans de fusionar
Amb el mode de prova, SWPanel valida i analitza el paquet de cada pull request i et diu què passaria, sense publicar res. Així, el que arriba a main ja ha passat el filtre.
- La mateixa anàlisi que en producció: errors, seguretat i dependències
- Les teves regles també s'apliquen: un Flux pot vetar el desplegament
- Ni una línia de la web canvia
on: pull_request
jobs:
probar:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build && tar -czf web.tgz -C dist .
- run: |
curl -X POST \
https://api.swpanel.com/public/services/$SERVICIO/deployment/ \
-H "Authorization: Bearer ${{ secrets.SWPANEL_TOKEN }}" \
-F "[email protected]" \
-F "dry_run=true"
# A cada pull request: valida i analitza, sense publicar
Què passa després
De la crida a la web
El que fa SWPanel amb cada paquet, abans de tocar la teva web.
-
El rep
Sencer: fins que no arriba complet i quadra la seva empremta (SHA-256), no s'usa.
-
El valida
Rutes, mida (fins a 50 MB per defecte) i fitxers prohibits.
-
L'analitza
Errors, vulnerabilitats i dependències amb fallades conegudes.
-
Aplica les teves regles
Els teus Fluxos poden aturar un desplegament, i producció pot demanar aprovació des de SWPanel o Telegram.
-
El publica
Amb una còpia de l'anterior i sense tocar els teus fitxers protegits. Tu i el teu equip rebeu l'avís.
Sense secrets
Desplega sense desar cap clau
Amb OIDC, GitHub Actions i GitLab CI demostren a SWPanel quin repositori i quina branca estan desplegant. No hi ha cap clau al CI que es pugui filtrar.
Tornada enrere
Si alguna cosa surt malament, un clic
Cada desplegament queda a l'historial: qui, quan, quin commit i què ha canviat. Tornes a la versió anterior amb un clic a SWPanel o amb una crida a l'API, i els desplegaments atòmics canvien la web de cop, sense estats a mitges.
Preguntes freqüents
Dubtes sobre desplegaments
El teu proper push, ja a la web
Crea el teu token, copia la recepta i fes push.