Berbagi data antar tindakan dalam alur kerja menggunakan artefak - Amazon CodeCatalyst

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Berbagi data antar tindakan dalam alur kerja menggunakan artefak

Artefak adalah output dari tindakan alur kerja, dan biasanya terdiri dari folder atau arsip file. Artefak penting karena memungkinkan Anda berbagi file dan informasi antar tindakan.

Misalnya, Anda mungkin memiliki tindakan build yang menghasilkan sam-template.yml file, tetapi Anda ingin tindakan penerapan menggunakannya. Dalam skenario ini, Anda akan menggunakan artefak untuk memungkinkan tindakan build membagikan sam-template.yml file dengan tindakan penerapan. Kode mungkin terlihat seperti ini:

Actions: BuildAction: Identifier: aws/build@v1 Steps: - Run: sam package --output-template-file sam-template.yml Outputs: Artifacts: - Name: MYARTIFACT Files: - sam-template.yml DeployAction: Identifier: aws/cfn-deploy@v1 Inputs: Artifacts: - MYARTIFACT Configuration: template: sam-template.yml

Dalam kode sebelumnya, build action (BuildAction) menghasilkan sam-template.yml file, dan kemudian menambahkannya ke artefak keluaran yang disebutMYARTIFACT. Tindakan penerapan berikutnya (DeployAction) menentukan MYARTIFACT sebagai input, memberikannya akses ke file. sam-template.yml

Dapatkah saya membagikan artefak tanpa menentukannya sebagai output dan input?

Ya, Anda dapat berbagi artefak antar tindakan tanpa menentukannya di Outputs dan Inputs bagian kode YAMM tindakan Anda. Untuk melakukan ini, Anda harus mengaktifkan berbagi komputasi. Untuk informasi selengkapnya tentang berbagi komputasi dan cara menentukan artefak saat dihidupkan, lihat. Berbagi komputasi di seluruh tindakan

catatan

Meskipun fitur berbagi komputasi memungkinkan Anda menyederhanakan kode YAMM alur kerja Anda dengan menghilangkan kebutuhan untuk Inputs bagian Outputs dan, fitur ini memiliki batasan yang harus Anda ketahui sebelum Anda menyalakannya. Untuk informasi tentang batasan ini, lihatPertimbangan untuk berbagi komputasi.

Bisakah saya berbagi artefak antar alur kerja?

Tidak, Anda tidak dapat berbagi artefak di antara alur kerja yang berbeda; namun, Anda dapat berbagi artefak antar tindakan dalam alur kerja yang sama.

Mendefinisikan artefak keluaran

Gunakan petunjuk berikut untuk menentukan artefak yang Anda inginkan tindakan untuk dihasilkan. Artefak ini kemudian tersedia untuk tindakan lain untuk digunakan.

catatan

Tidak semua tindakan mendukung artefak keluaran. Untuk menentukan apakah tindakan Anda mendukungnya, jalankan melalui instruksi editor visual yang mengikuti, dan lihat apakah tindakan tersebut menyertakan tombol artefak Output pada tab Output. Jika ya, artefak keluaran didukung.

Visual
Untuk menentukan artefak keluaran menggunakan editor visual
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Pilih proyek Anda.

  3. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  4. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama alur kerja.

  5. Pilih Edit.

  6. Pilih Visual.

  7. Dalam diagram alur kerja, pilih tindakan yang akan menghasilkan artefak.

  8. Pilih tab Output.

  9. Di bawah Artefak, pilih Tambahkan artefak.

  10. Pilih Tambahkan artefak, dan masukkan informasi ke dalam bidang, sebagai berikut.

    Bangun nama artefak

    Tentukan nama artefak yang dihasilkan oleh tindakan. Nama artifak harus unik dalam alur kerja, dan terbatas pada karakter alfanumerik (a-z, A-Z, 0-9) dan garis bawah (_). Spasi, tanda hubung (-), dan karakter khusus lainnya tidak diperbolehkan. Anda tidak dapat menggunakan tanda kutip untuk mengaktifkan spasi, tanda hubung, dan karakter khusus lainnya dalam nama artefak keluaran.

    Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihatBerbagi data antar tindakan dalam alur kerja menggunakan artefak.

    File yang dihasilkan oleh build

    Tentukan file yang CodeCatalyst termasuk dalam artefak yang dihasilkan oleh tindakan. File-file ini dihasilkan oleh tindakan alur kerja saat dijalankan, dan juga tersedia di repositori sumber Anda. Jalur file dapat berada di repositori sumber atau artefak dari tindakan sebelumnya, dan relatif terhadap repositori sumber atau root artefak. Anda dapat menggunakan pola glob untuk menentukan jalur. Contoh:

    • Untuk menentukan satu file yang ada di root lokasi build atau lokasi repositori sumber, gunakan. my-file.jar

    • Untuk menentukan satu file dalam subdirektori, gunakan directory/my-file.jar ataudirectory/subdirectory/my-file.jar.

    • Untuk menentukan semua file, gunakan"**/*". Pola ** glob menunjukkan untuk mencocokkan sejumlah subdirektori.

    • Untuk menentukan semua file dan direktori dalam direktori bernamadirectory, gunakan"directory/**/*". Pola ** glob menunjukkan untuk mencocokkan sejumlah subdirektori.

    • Untuk menentukan semua file dalam direktori bernamadirectory, tetapi tidak salah satu subdirektorinya, gunakan. "directory/*"

    catatan

    Jika jalur file Anda menyertakan satu atau beberapa tanda bintang (*) atau karakter khusus lainnya, lampirkan jalur dengan tanda kutip ganda (). "" Untuk informasi selengkapnya tentang karakter khusus, lihatPedoman dan konvensi sintaks.

    Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihatBerbagi data antar tindakan dalam alur kerja menggunakan artefak.

    catatan

    Anda mungkin perlu menambahkan awalan ke jalur file untuk menunjukkan artefak atau sumber mana yang akan menemukannya. Untuk informasi selengkapnya, lihat Mereferensikan file dalam repositori sumber dan Merujuk file dalam artefak.

  11. (Opsional) Pilih Validasi untuk memvalidasi kode YAMM alur kerja sebelum melakukan.

  12. Pilih Komit, masukkan pesan komit, dan pilih Komit lagi.

YAML
Untuk menentukan artefak keluaran menggunakan editor YAMM
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Pilih proyek Anda.

  3. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  4. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama alur kerja.

  5. Pilih Edit.

  6. Pilih YAMAL.

  7. Dalam tindakan alur kerja, tambahkan kode yang mirip dengan berikut ini:

    action-name: Outputs: Artifacts: - Name: artifact-name Files: - file-path-1 - file-path-2

    Untuk contoh lainnya, lihat Contoh artefak. Untuk informasi selengkapnya, lihat Alur kerja definisi YAMAL untuk tindakan Anda.

  8. (Opsional) Pilih Validasi untuk memvalidasi kode YAMM alur kerja sebelum melakukan.

  9. Pilih Komit, masukkan pesan komit, dan pilih Komit lagi.

Mendefinisikan artefak input

Jika Anda ingin menggunakan artefak yang dihasilkan oleh tindakan lain, Anda harus menentukannya sebagai masukan untuk tindakan saat ini. Anda mungkin dapat menentukan beberapa artefak sebagai input—itu tergantung pada tindakan. Untuk informasi selengkapnya, lihat Alur kerja definisi YAMAL untuk tindakan Anda.

catatan

Anda tidak dapat mereferensikan artefak dari alur kerja lain.

Gunakan petunjuk berikut untuk menentukan artefak dari tindakan lain sebagai masukan untuk tindakan saat ini.

Prasyarat

Sebelum Anda mulai, pastikan Anda memiliki output artefak dari tindakan lain. Untuk informasi selengkapnya, lihat Mendefinisikan artefak keluaran. Mengeluarkan artefak membuatnya tersedia untuk tindakan lain untuk digunakan.

Visual
Untuk menentukan artefak sebagai masukan untuk tindakan (editor visual)
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Pilih proyek Anda.

  3. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  4. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama alur kerja.

  5. Pilih Edit.

  6. Pilih Visual.

  7. Dalam diagram alur kerja, pilih tindakan di mana Anda ingin menentukan artefak sebagai input.

  8. Pilih Input.

  9. Dalam Artefak - opsional, lakukan hal berikut:

    Tentukan artefak dari tindakan sebelumnya yang ingin Anda berikan sebagai masukan untuk tindakan ini. Artefak ini harus sudah didefinisikan sebagai artefak keluaran dalam tindakan sebelumnya.

    Jika Anda tidak menentukan artefak input apa pun, maka Anda harus menentukan setidaknya satu repositori sumber di bawah. action-name/Inputs/Sources

    Untuk informasi selengkapnya tentang artefak, termasuk contoh, lihatBerbagi data antar tindakan dalam alur kerja menggunakan artefak.

    catatan

    Jika Artefacts - daftar drop-down opsional tidak tersedia (editor visual), atau jika Anda mendapatkan kesalahan saat memvalidasi YAMG (editor YAMM), itu mungkin karena tindakan hanya mendukung satu input. Dalam hal ini, coba hapus input sumber.

  10. (Opsional) Pilih Validasi untuk memvalidasi kode YAMM alur kerja sebelum melakukan.

  11. Pilih Komit, masukkan pesan komit, dan pilih Komit lagi.

YAML
Untuk menentukan artefak sebagai masukan ke tindakan (editor YAMB)
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Pilih proyek Anda.

  3. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  4. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama alur kerja.

  5. Pilih Edit.

  6. Pilih YAMAL.

  7. Dalam tindakan di mana Anda ingin menentukan artefak sebagai input, tambahkan kode yang mirip dengan berikut ini:

    action-name: Inputs: Artifacts: - artifact-name

    Untuk contoh lainnya, lihat Contoh artefak.

  8. (Opsional) Pilih Validasi untuk memvalidasi kode YAMM alur kerja sebelum melakukan.

  9. Pilih Komit, masukkan pesan komit, dan pilih Komit lagi.

Merujuk file dalam artefak

Jika Anda memiliki file yang berada dalam artefak, dan Anda perlu merujuk ke file ini di salah satu tindakan alur kerja Anda, selesaikan prosedur berikut.

Untuk referensi file dalam artefak
  • Dalam tindakan di mana Anda ingin mereferensikan file, tambahkan kode yang mirip dengan yang berikut ini:

    Actions: My-action: Inputs: Sources: - WorkflowSource Artifacts: - artifact-name Configuration: Steps: - run: cd $CATALYST_SOURCE_DIR_artifact-name/build-output && cat file.txt

    Dalam kode sebelumnya, tindakan terlihat di build-output direktori dalam artefak nama artefak untuk menemukan dan menampilkan file. file.txt

    Untuk contoh lainnya, lihat Contoh artefak.

    catatan

    Anda mungkin dapat menghilangkan $CATALYST_SOURCE_DIR_artifact-name/ awalan tergantung pada cara Anda mengonfigurasi tindakan Anda. Untuk informasi lebih lanjut, lihat panduan berikut.

    Panduan tentang cara merujuk ke variabel:

    • Jika tindakan Anda hanya menyertakan satu item di bawah Inputs (misalnya, itu termasuk satu artefak input dan tidak ada sumber), maka Anda dapat menghilangkan awalan dan menentukan hanya jalur file relatif terhadap root artefak.

    • Anda juga dapat menghilangkan awalan jika file berada di input utama. Input utama adalahWorkflowSource, atau artefak input pertama yang terdaftar, jika tidak WorkflowSource ada.

    • Awalan bisa berbeda tergantung pada tindakan yang Anda gunakan. Untuk informasi lebih lanjut, lihat tabel di bawah ini.

Tipe tindakan Awalan jalur file yang akan digunakan Contoh

Bangun tindakan, uji tindakan

$CATALYST_SOURCE_DIR_artifact-name/

$CATALYST_SOURCE_DIR_MyArtifact/folder1/file.txt

Semua tindakan lainnya

$CATALYST_SOURCE_DIR_artifact-name/

atau

/artifacts/current-action-name/artifact-name/(jalur ini adalah tautan simbolis ke $CATALYST_SOURCE_DIR_ artefact-name/)

$CATALYST_SOURCE_DIR_MyArtifact/folder1/file.txt

atau

/artifacts/MyCurrentAction/MyArtifact/folder1/file.txt

Mengunduh artefak

Anda dapat mengunduh dan memeriksa artefak yang dihasilkan oleh tindakan alur kerja Anda untuk tujuan pemecahan masalah. Ada dua jenis artefak yang dapat Anda unduh:

  • Artefak sumber — Artefak yang berisi snapshot konten repositori sumber seperti yang ada saat proses dijalankan.

  • Artefak alur kerja - Artefak yang didefinisikan dalam Outputs properti file konfigurasi alur kerja Anda.

Untuk mengunduh keluaran artefak berdasarkan alur kerja
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Pilih proyek Anda.

  3. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  4. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama alur kerja.

  5. aDi bawah nama alur kerja, pilih Runs.

  6. Di Riwayat Jalankan, di kolom Run ID, pilih run. Misalnya, Run-95a4d.

  7. Di bawah nama run, pilih Artefak.

  8. Di samping artefak, pilih Unduh. File arsip diunduh. Nama filenya terdiri dari tujuh karakter acak.

  9. Ekstrak arsip menggunakan utilitas ekstraksi arsip pilihan Anda.

Contoh artefak

Contoh berikut menunjukkan cara mengeluarkan, memasukkan, dan referensi artefak dalam file definisi alur kerja.

Contoh: Mengeluarkan artefak

Contoh berikut menunjukkan bagaimana untuk output artefak yang mencakup dua file.jar.

Actions: Build: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ARTIFACT1 Files: - build-output/file1.jar - build-output/file2.jar

Contoh: Memasukkan artefak yang dihasilkan oleh tindakan lain

Contoh berikut menunjukkan kepada Anda cara menampilkan artefak yang dipanggil ARTIFACT4BuildActionA, dan memasukkannya ke dalamBuildActionB.

Actions: BuildActionA: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ARTIFACT4 Files: - build-output/file1.jar - build-output/file2.jar BuildActionB: Identifier: aws/build@v1 Inputs: Artifacts: - ARTIFACT4 Configuration:

Contoh: Merujuk file dalam beberapa artefak

Contoh berikut menunjukkan kepada Anda cara menampilkan dua artefak bernama ART5 dan ART6 masukBuildActionC, dan kemudian referensi dua file bernama file5.txt (dalam artefakART5) dan file6.txt (dalam artefakART6) di BuildActionD (bawah). Steps

catatan

Untuk informasi selengkapnya tentang referensi file, lihatMerujuk file dalam artefak.

catatan

Meskipun contoh menunjukkan $CATALYST_SOURCE_DIR_ART5 awalan yang digunakan, Anda bisa menghilangkannya. Ini karena ART5 merupakan masukan utama. Untuk mempelajari lebih lanjut tentang input utama, lihatMerujuk file dalam artefak.

Actions: BuildActionC: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ART5 Files: - build-output/file5.txt - Name: ART6 Files: - build-output/file6.txt BuildActionD: Identifier: aws/build@v1 Inputs: Artifacts: - ART5 - ART6 Configuration: Steps: - run: cd $CATALYST_SOURCE_DIR_ART5/build-output && cat file5.txt - run: cd $CATALYST_SOURCE_DIR_ART6/build-output && cat file6.txt

Contoh: Mereferensikan file dalam satu artefak

Contoh berikut menunjukkan kepada Anda cara menampilkan satu artefak bernama ART7BuildActionE, dan kemudian referensi file7.txt (dalam artefakART7) di BuildActionF (bawahSteps).

Perhatikan bagaimana referensi tidak memerlukan awalan $CATALYST_SOURCE_DIR_ nama artefak di depan build-output direktori seperti yang terjadi di. Contoh: Merujuk file dalam beberapa artefak Ini karena hanya ada satu item yang ditentukan di bawahInputs.

catatan

Untuk informasi selengkapnya tentang referensi file, lihatMerujuk file dalam artefak.

Actions: BuildActionE: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ART7 Files: - build-output/file7.txt BuildActionF: Identifier: aws/build@v1 Inputs: Artifacts: - ART7 Configuration: Steps: - run: cd build-output && cat file7.txt

Contoh: Mereferensikan file dalam artefak saat ada WorkflowSource

Contoh berikut menunjukkan kepada Anda cara menampilkan satu artefak bernama ART8BuildActionG, dan kemudian referensi file8.txt (dalam artefakART8) di BuildActionH (bawahSteps).

Perhatikan bagaimana referensi memerlukan awalan $CATALYST_SOURCE_DIR_ nama artefak, seperti yang terjadi di. Contoh: Merujuk file dalam beberapa artefak Ini karena ada beberapa item yang ditentukan di bawah Inputs (sumber dan artefak), jadi Anda memerlukan awalan untuk menunjukkan di mana harus mencari file.

catatan

Untuk informasi selengkapnya tentang referensi file, lihatMerujuk file dalam artefak.

Actions: BuildActionG: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ART8 Files: - build-output/file8.txt BuildActionH: Identifier: aws/build@v1 Inputs: Sources: - WorkflowSource Artifacts: - ART8 Configuration: Steps: - run: cd $CATALYST_SOURCE_DIR_ART8/build-output && cat file8.txt