Pendahuluan
Artikel ini akan membahas secara mendalam tentang cara memanfaatkan artifak dan output pekerjaan di GitHub Actions, dengan memberikan contoh-contoh praktis untuk menunjukkan keberagaman dan efektivitas mereka.
Berbagi Data dengan Artifak
Artifak adalah file yang dapat Anda simpan dan ambil selama pelaksanaan alur kerja GitHub Actions. Dengan mengunggah dan mengunduh artifak, Anda dapat berbagi data antara tindakan yang berjalan dalam pekerjaan yang sama atau bahkan di seluruh pekerjaan yang berbeda dalam alur kerja yang sama.
Berikut adalah contoh penggunaan artifak untuk berbagi data antara tindakan:
jobs:
produce_artifact:
runs-on: ubuntu-latest
steps:
- name: Create artifact
run: |
echo "This is an example artifact" > artifact.txt
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: my-artifact
path: artifact.txt
consume_artifact:
needs: produce_artifact
runs-on: ubuntu-latest
steps:
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: my-artifact
- name: Display artifact content
run: cat my-artifact/artifact.txt
Pada contoh di atas, kita membuat sebuah file artifak yang disebut artifact.txt
dalam pekerjaan produce_artifact
. Kita kemudian mengunggah artifak menggunakan tindakan actions/upload-artifact
. Pada pekerjaan consume_artifact
, kita mengunduh artifak menggunakan tindakan actions/download-artifact
dan menampilkan isinya.
Memanfaatkan Output Pekerjaan
Output pekerjaan adalah cara yang powerful untuk berbagi data antara tindakan yang berjalan dalam pekerjaan yang berbeda. Dengan menentukan output pada level pekerjaan, Anda dapat membuat data yang dihasilkan oleh satu pekerjaan tersedia untuk pekerjaan lain, memungkinkan alur kerja yang lebih kompleks dan ketergantungan data.
Berikut adalah contoh penggunaan output pekerjaan untuk berbagi data antara pekerjaan:
jobs:
producer:
runs-on: ubuntu-latest
steps:
- name: Produce data
run: |
echo "Produced data: example-data" > data.txt
echo "data=$(cat data.txt)" >> $GITHUB_OUTPUT
id: producer_step
outputs:
produced_data: ${{ steps.producer_step.outputs.data }}
consumer:
needs: producer
runs-on: ubuntu-latest
steps:
- name: Consume data
run: |
echo "Received data: ${{ needs.producer.outputs.produced_data }}"
Pada contoh di atas, kita membuat sebuah file yang disebut data.txt
dalam pekerjaan producer
dan menetapkan isinya sebagai output. Kita kemudian menentukan output pekerjaan produced_data
, yang diatur ke nilai output langkah. Pada pekerjaan consumer
, kita mengakses output pekerjaan menggunakan konteks needs
dan menampilkan data yang diterima.
Referensi