Skip to content

GitHub Actions

Chetabahana edited this page Jun 16, 2020 · 3 revisions

GitHub Actions memudahkan untuk mengotomatisasi semua alur kerja perangkat lunak dengan CI/CD kelas dunia.

Table of Contents

Pengenalan

Bangun, uji, dan gunakan kode Anda langsung dari GitHub. Buat ulasan kode, manajemen cabang, dan triase bekerja sesuai keinginan Anda.

Biaya

Gabung

Saat tulisan ini dibuat status adalah beta, maka belum semuanya sempurna. Jika Anda ingin menjadi yang pertama menggunakan GitHub Actions, daftar untuk beta sekarang.

Konfirmasi

Konfirmasi akan dikirim via email seperti berikut ini:

Workflow

Melebihi batas penggunaan dapat menyebabkan antrian pekerjaan, gagal berjalan, atau gagal menyelesaikan. Batas dapat berubah.
  • Anda dapat menjalankan hingga 20 alur kerja secara bersamaan per repositori.
  • Anda dapat menjalankan hingga 1000 permintaan API dalam satu jam
  • Setiap pekerjaan dalam alur kerja dapat berjalan hingga 6 jam waktu eksekusi.
  • Anda dapat menjalankan hingga 20 pekerjaan secara bersamaan per repositori.

Syntax

Syntax dapat dibagi kedalam item berikut:
  • name
  • on
  • jobs
  • jobs.<job_id></job_id>
  • jobs.<job_id></job_id>.name
  • jobs.<job_id></job_id>.needs
  • jobs.<job_id></job_id>.runs-on
  • jobs.<job_id></job_id>.steps
  • jobs.<job_id></job_id>.timeout-minutes
  • jobs.<job_id></job_id>.strategy
  • jobs.<job_id></job_id>.container
  • jobs.<job_id></job_id>.services
Untuk lebih lengkapnya lihat dokumentasi dan lab pembelajaran untuk membuat "hello world" pertama Anda. Kemudian kunjungi salah satu repositori Anda, klik tab Actions” untuk membuat workflow pertama Anda.

!master

Sintaks Wildcards untuk menjalankan alur kerja, on push, pada cabang apa pun kecuali master.
on:
  push:
    branches:
      - '*'
      - '!master'

Cronjob

Contoh ini memicu alur kerja setiap 15 menit:

on:
  schedule:
  # * is a special character in YAML so you have to quote this string
  - cron:  '*/15 * * * *'
Cron syntax has five fields separated by a space, and each field represents a unit of time.

┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
│ │ │ │ │                                   
│ │ │ │ │
│ │ │ │ │

Eksternal

Anda dapat menggunakan GitHub API untuk memicu acara webhook yang disebut repository_dispatch ketika Anda ingin memicu alur kerja untuk aktivitas yang terjadi di luar GitHub.

Untuk informasi lebih lanjut, lihat "Membuat acara pengiriman repositori" di dokumentasi Pengembang GitHub.

on: repository_dispatch

Untuk memicu acara repository_dispatch kustom, Anda harus mengirim permintaan POST ke titik akhir API GitHub dan memberikan nama event_type untuk menjelaskan jenis aktivitas.

Untuk memicu proses alur kerja, Anda juga harus mengonfigurasi alur kerja Anda untuk menggunakan acara repository_dispatch. Untuk mengakses titik akhir ini selama periode pratinjau, Anda harus memberikan jenis media khusus di header:

curl https://api.github.com/users/technoweenie -I
HTTP/1.1 200 OK
X-GitHub-Media-Type: github.v3
curl https://api.github.com/users/technoweenie -I \
 -H "Accept: application/vnd.github.everest-preview+json"
HTTP/1.1 200 OK
X-GitHub-Media-Type: github.v3; param=full; format=json
curl https://api.github.com/users/technoweenie -I \
 -H "Accept: application/vnd.github.everest-preview+json"
HTTP/1.1 200 OK
X-GitHub-Media-Type: github.v3; param=full; format=json

Implementasi

Implementasi dari GitHub Actions ini akan mengikuti Bagan-Project. Eksekusi secara detil kita bahas di sesi tutorial pada bagian setelan otomasi dan selanjutnya akan bermuara di sesi implementasi.

Integrasi

Integrasi dengan GitHub Actions dapat dilakukan dengan eksternal seperti misalnya Listener via Google-Cloud-Functions atau triggering via Codefresh.

Delivery

Pendekatan rekayasa perangkat lunak penting dilakukan untuk memastikan bahwa perangkat lunak dapat dirilis setiap saat. Kita akan bahas lebih lanjut di sesi Continuous Delivery

Referensi

Clone this wiki locally