Run#
Jalankan serangkaian perintah shell yang sudah didefinisikan di lokio/configs.yaml.
Apa itu lokio run?#
lokio run memungkinkan kamu mendefinisikan runbook — kumpulan langkah shell bernama — langsung di file konfigurasi project dan menjalankannya dengan satu perintah. Bayangkan ini sebagai task runner ringan yang sudah built-in di Lokio: tidak perlu Makefile terpisah, tidak perlu skrip shell yang harus dijaga.
Kegunaan umum:
- Setup server baru (install Docker, Nginx, PostgreSQL, dll.)
- Bootstrap environment development
- Menjalankan urutan deploy
- Mengotomatisasi task sistem berulang yang dibagikan ke seluruh tim
Penggunaan Dasar#
lokio run --id <id>Contoh:
lokio run --id install-docker
lokio run --id setup-vm
lokio run --id install-nodejsKonfigurasi#
Run didefinisikan di bagian runs: pada lokio/configs.yaml.
runs:
- id: install-docker
description: Install Docker & Docker Compose (Ubuntu/Debian)
steps:
- name: Update apt
run: sudo apt update -y
- name: Install Docker Engine
run: sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- name: Add user to docker group
run: sudo usermod -aG docker $USER
- name: Verify Docker
run: docker --version && docker compose versionField run#
| Field | Wajib | Keterangan |
|---|---|---|
id | ya | Identifier unik — digunakan dengan lokio run --id <id> |
description | ya | Deskripsi yang mudah dibaca tentang apa yang dilakukan run ini |
steps | ya | Daftar langkah yang dieksekusi secara berurutan |
Field step#
| Field | Wajib | Keterangan |
|---|---|---|
name | ya | Label yang ditampilkan saat step berjalan |
run | ya | Perintah shell yang dieksekusi |
continue_on_error | tidak | Jika true, lanjut ke step berikutnya meski step ini gagal |
Perintah Multi-baris#
Gunakan YAML block scalar (|) untuk perintah yang terdiri dari beberapa baris:
steps:
- name: Tambah Docker GPG key
run: |
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
- name: Tambah repo Docker
run: |
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullcontinue_on_error#
Secara default, run akan berhenti langsung jika ada step yang gagal. Set continue_on_error: true pada sebuah step agar run tetap melanjutkan:
steps:
- name: Jalankan Redis container
run: docker run -d --name redis --restart unless-stopped -p 6379:6379 redis:7-alpine
continue_on_error: true # container mungkin sudah berjalan — tidak apa-apa
- name: Verifikasi Redis
run: docker exec redis redis-cli pingIni berguna saat sebuah step boleh gagal tanpa menghentikan proses — misalnya menjalankan container yang sudah aktif, atau membersihkan resource yang mungkin tidak ada.
Contoh Output#
Running: install-docker
● Update apt
✓ Update apt
● Install Docker Engine
✓ Install Docker Engine
● Add user to docker group
✓ Add user to docker group
● Verify Docker
✓ Verify Docker
✓ Done — 4 step(s) completed
Jika sebuah step gagal:
● Install Docker Engine
✗ Install Docker Engine — exit code 1
Run stopped. Fix the error above and try again.
Dengan continue_on_error: true:
● Jalankan Redis container
⚠ Jalankan Redis container — exit code 125 (skipped, continue_on_error: true)
● Verifikasi Redis
✓ Verifikasi Redis
Contoh Nyata#
Install Node.js via NVM#
- id: install-nodejs
description: Install Node.js LTS via NVM
steps:
- name: Install NVM
run: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
- name: Install Node.js LTS
run: |
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install --lts && nvm use --lts && nvm alias default 'lts/*'
- name: Install pnpm
run: |
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
npm install -g pnpm
- name: Verifikasi
run: |
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
node -v && npm -v && pnpm -vlokio run --id install-nodejsSetup VM Lengkap#
Gabungkan beberapa instalasi menjadi satu run:
- id: setup-vm
description: Setup server lengkap — Docker, PostgreSQL, Redis, Node.js, Nginx, UFW
steps:
- name: Update & upgrade sistem
run: sudo apt update -y && sudo apt upgrade -y
- name: Install utils dasar
run: sudo apt install -y curl wget git unzip htop net-tools ufw build-essential
- name: Install Docker
run: |
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update -y && sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER
- name: Install Nginx
run: sudo apt install -y nginx && sudo systemctl enable --now nginx
- name: Setup UFW
run: |
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp && sudo ufw allow 443/tcp
sudo ufw --force enable
- name: Summary
run: |
docker --version
nginx -v
sudo ufw statuslokio run --id setup-vmTips#
Load konfigurasi shell di dalam step — setiap step berjalan di subproses tersendiri, sehingga ~/.bashrc / ~/.zshrc tidak otomatis ter-load. Muat env yang dibutuhkan secara eksplisit:
- name: Pakai NVM
run: |
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm use --ltsBuat step tetap fokus — satu aksi logis per step membuat output mudah dibaca dan error mudah dilacak.
Gunakan description — ditampilkan di lokio run --help dan membuat runbook menjadi dokumentasi sendiri bagi rekan tim.
Lihat Juga#
- Commands → — referensi lengkap semua perintah Lokio
- Advanced Features → — multi-file template, AI check, sync