Traffine I/O

Bahasa Indonesia

2023-03-04

Artifak dan Output Pekerjaan di GitHub Actions

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:

yaml
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:

yaml
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

https://docs.github.com/en/actions

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!