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.
Topik
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.
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.
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.
catatan
Lihat juga Mereferensikan file dalam repositori sumber.
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.txtDalam kode sebelumnya, tindakan terlihat di
build-output
direktori dalam artefaknama artefak
untuk menemukan dan menampilkan file.file.txt
Untuk contoh lainnya, lihat Contoh artefak.
catatan
Anda mungkin dapat menghilangkan
$CATALYST_SOURCE_DIR_
awalan tergantung pada cara Anda mengonfigurasi tindakan Anda. Untuk informasi lebih lanjut, lihat panduan berikut.artifact-name
/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 adalah
WorkflowSource
, atau artefak input pertama yang terdaftar, jika tidakWorkflowSource
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 |
---|---|---|
|
|
|
Semua tindakan lainnya |
atau
|
atau
|
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
Buka CodeCatalyst konsol di https://codecatalyst.aws/
. -
Pilih proyek Anda.
Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.
-
Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama alur kerja.
-
aDi bawah nama alur kerja, pilih Runs.
-
Di Riwayat Jalankan, di kolom Run ID, pilih run. Misalnya,
Run-95a4d
. -
Di bawah nama run, pilih Artefak.
-
Di samping artefak, pilih Unduh. File arsip diunduh. Nama filenya terdiri dari tujuh karakter acak.
-
Ekstrak arsip menggunakan utilitas ekstraksi arsip pilihan Anda.
Contoh artefak
Contoh berikut menunjukkan cara mengeluarkan, memasukkan, dan referensi artefak dalam file definisi alur kerja.
Topik
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 ARTIFACT4
BuildActionA
, 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 ART7
BuildActionE
, 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 ART8
BuildActionG
, 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