
Otomatiskan menggunakan situs web dan lainnya dengan tindakan github ini. GRATIS!
Tempatkan yang berikut di Your_Project/.github/workflows/main.yml
on : push
name : Publish Website
jobs :
web-deploy :
name : Deploy Website Every Commit
runs-on : ubuntu-latest
steps :
- name : ? Get Latest Code
uses : actions/checkout@v3
- name : Sync Files
uses : SamKirkland/web-deploy@v1
with :
target-server : example.com
remote-user : username
private-ssh-key : ${{ secrets.SSH_KEY }}
destination-path : ~/destinationFolder/ActionsBlank workflow file atau Set up a workflow yourself , jika Anda tidak melihat opsi ini secara manual membuat file yaml yaml Your_Project/.github/workflows/main.ymlsecrets di proyek Anda. Untuk menambahkan secret , buka tab Settings di proyek Anda lalu pilih Secrets . Tambahkan Secret baru untuk private-ssh-key Kunci dapat ditambahkan langsung ke file konfigurasi .yml Anda atau direferensikan dari penyimpanan Secrets proyek Anda.
Untuk menambahkan secret , buka tab Settings di proyek Anda lalu pilih Secrets . Saya sangat menyarankan Anda menyimpan private-ssh-key Anda sebagai rahasia.
| Nama kunci | Diperlukan? | Contoh | Bawaan | Keterangan |
|---|---|---|---|---|
target-server | Ya | example.com | Server tujuan untuk digunakan | |
destination-path | Ya | ~/folderOnServerThatAlreadyExists/ | Jalur di server untuk digunakan. Harus sudah ada. | |
remote-user | Ya | username | Pengguna SSH untuk login sebagai | |
private-ssh-key | Ya | -----BEGIN RSA PRIVATE KEY----- ...... | Kunci pribadi SSH. Harus ditentukan sebagai rahasia. | |
source-path | TIDAK | ./myFolderToPublish/ | ./ | Jalur untuk mengunggah ke server, harus diakhiri dengan slash trailing / |
ssh-port | TIDAK | 12345 | 22 | Port ssh untuk digunakan. Sebagian besar host mengubah ini dari default. Ini bukan port situs web Anda. |
rsync-options | TIDAK | Lihat bagian rsync-options di bawah ini | --archive --verbose --compress --human-readable --progress --delete-after --exclude=.git* --exclude=.git/ --exclude=README.md --exclude=readme.md --exclude=.gitignore | Catatan: Jika menyesuaikan Anda harus menentukan kembali default (dengan asumsi Anda menginginkannya). Argumen RSYNC khusus, bidang ini diteruskan langsung ke skrip RSYNC. |
rsync-optionsArgumen khusus, bidang ini diteruskan langsung ke skrip RSYNC. Lihat manual RSYNC untuk semua opsi. Anda dapat menggunakan argumen sebanyak yang Anda inginkan, memisahkannya dengan ruang
Di bawah ini adalah daftar Args yang umum digunakan:
| Pilihan | Keterangan |
|---|---|
--archive | Cara cepat mengatakan Anda ingin rekursi dan ingin melestarikan hampir semuanya |
--dry-run | Tidak mengunggah atau menghapus apapun, tetapi memberi tahu Anda apa yang akan diunggah/hapus jika ini adalah penyebaran nyata |
--stats | Cetak statistik verbose pada transfer file, memungkinkan Anda untuk mengetahui seberapa efektif algoritma delta-transfer RSYNC adalah untuk data Anda |
--links | Saat symlink ditemui, buat ulang symlink di tujuan |
--compress | Mengompres data file seperti yang dikirim ke mesin tujuan, yang mengurangi jumlah data yang sedang dikirim |
--human-readable | Output byte dalam format yang lebih dapat dibaca manusia (k, m, g) |
--itemize-changes | Daftar Perubahan Perubahan yang sedang dibuat untuk setiap file, termasuk perubahan atribut |
--delete-after | Saat Anda menghapus file di GitHub, itu juga akan dihapus di server. File dihapus pada akhir penyebaran untuk meminimalkan downtime. |
--max-size '200K' | Abaikan file sinkronisasi di atas batas ini. Nilai adalah angka yang diikuti oleh "K", "M", atau "G" |
--exclude 'file.txt' | Tidak termasuk file dari penyebaran. Mendukung Glob Pattterns (mis: *.jpg ). Anda dapat memiliki beberapa mengecualikan! |
--include 'file.txt' | Termasuk file bahkan jika dikecualikan. Mendukung Glob Pattterns (mis: *.jpg ). Anda dapat memiliki beberapa termasuk! |
Lihat manual RSYNC untuk semua opsi
Pastikan Anda memiliki skrip NPM bernama 'build'. Konfigurasi ini harus berfungsi untuk sebagian besar situs web yang dibangun oleh simpul.
on : push
name : Publish Website
jobs :
web-deploy :
name : Deploy Website Every Commit
runs-on : ubuntu-latest
steps :
- name : ? Get Latest Code
uses : actions/checkout@v3
- name : ? Install Packages
- uses : actions/setup-node@v3
with :
node-version : 18
cache : " npm "
- run : npm ci
- name : ? Build
run : npm run build
- name : Sync Files
uses : SamKirkland/web-deploy@v1
with :
target-server : example.com
remote-user : username
private-ssh-key : ${{ secrets.SSH_KEY }}
destination-path : ~/destinationFolder/ Ouputs daftar file yang akan dibuat/dimodifikasi untuk menyinkronkan sumber Anda tanpa membuat perubahan aktual
on : push
name : Publish Website Dry Run
jobs :
web-deploy :
name : Deploy Website Every Commit
runs-on : ubuntu-latest
steps :
- name : ? Get Latest Code
uses : actions/checkout@v3
- name : Sync Files
uses : SamKirkland/web-deploy@v1
with :
target-server : example.com
remote-user : username
private-ssh-key : ${{ secrets.SSH_KEY }}
ssh-port : 22
destination-path : ~/destinationFolder/
rsync-options : --dry-run --archive --verbose --compress --delete-after --human-readable --exclude=.git* --exclude=.git/ --exclude=README.md --exclude=readme.md --exclude=.gitignoreIngin contoh lain? Beri tahu saya dengan membuat masalah github
Jika Anda menghargai tindakan github ini, berikan atau pamer dengan salah satu lencana di bawah ini. Jangan ragu untuk mengedit teks atau warna.
[ < img alt = " Deployed with web deploy " src = " https://img.shields.io/badge/Deployed With-web deploy-%3CCOLOR%3E?style=for-the-badge&color=0077b6 " > ] ( https://github.com/SamKirkland/web-deploy ) [ < img alt = " Deployed with web deploy " src = " https://img.shields.io/badge/Deployed With-web deploy-%3CCOLOR%3E?style=for-the-badge&color=2b9348 " > ] ( https://github.com/SamKirkland/web-deploy ) [ < img alt = " Deployed with web deploy " src = " https://img.shields.io/badge/Deployed With-web deploy-%3CCOLOR%3E?style=for-the-badge&color=d00000 " > ] ( https://github.com/SamKirkland/web-deploy ) [ < img alt = " Website Deployed for Free with web deploy " src = " https://img.shields.io/badge/Website deployed for free with-web deploy-%3CCOLOR%3E?style=for-the-badge&color=297FA9 " > ] ( https://github.com/SamKirkland/web-deploy ) [ < img alt = " Website Deployed for Free with web deploy " src = " https://img.shields.io/badge/Website deployed for free with-web deploy-%3CCOLOR%3E?style=for-the-badge&color=2b9348 " > ] ( https://github.com/SamKirkland/web-deploy ) [ < img alt = " Website Deployed for Free with web deploy " src = " https://img.shields.io/badge/Website deployed for free with-web deploy-%3CCOLOR%3E?style=for-the-badge&color=d00000 " > ] ( https://github.com/SamKirkland/web-deploy ) File git dikecualikan secara default
Jika telah disesuaikan rsync-options Anda perlu menyesuaikan kembali opsi mengecualikan default menggunakan --exclude=.git* --exclude=.git/ --exclude=README.md --exclude=readme.md --exclude=.gitignore
Anda dapat menggunakan rsync-options dan melewati opsi sebanyak- --exclude seperti yang Anda inginkan. Secara default tindakan ini tidak termasuk file github. Jika Anda memilih untuk menyesuaikan rsync-options pastikan Anda menyalin di atas default.
Contoh tidak termasuk semua file .jpg :
rsync-options: --exclude "*.jpg"
Contoh tidak termasuk folder tertentu:
rsync-options: --exclude "wp-content/themes/"
Perpustakaan ini menggunakan rsync untuk menyinkronkan file. Script tidak dapat mendeteksi rsync pada mesin yang menjalankan aksi. Jika Anda menggunakan runs-on: ubuntu-latest Anda akan selalu memiliki rsync .
Jika Anda menggunakan windows-latest , windows-XXXX , macos-latest , macos-12 atau pelari yang diselenggarakan sendiri, Anda perlu menginstal RSYNC sebelum langkah-langkah web-deploy .
Ini cukup mudah dilakukan!
Pada windows Runners menjalankan langkah-langkah spesifik Windows Anda, lalu gunakan langkah ubuntu-latest untuk digunakan.
Pada pelari yang diselenggarakan sendiri menginstal RSYNC sebelum langkah web-deploy .
runs-on : [self-hosted, linux, my-self-hosted-runner-label]
steps :
- name : Install rsync
run : |
sudo apt-get update
sudo apt-get install rsync Pada pelari macos menginstal rsync sebelum langkah web-deploy .
runs-on : macos-latest
steps :
- name : Install rsync
run : |
brew update
brew install rsyncBaca lebih lanjut tentang penyesuaian pelari
https://docs.github.com/en/actions/using-github-hosted-runners/customizing-github-hosted-runners