Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan sintaks GitHub Tindakan di buildspec di AWS CodeBuild
Anda dapat menggunakan runner aksi CodeBuild yang dikelola untuk menjalankan GitHub Tindakan di dalamnya. CodeBuild Ini dapat dilakukan dengan menambahkan steps
ke fase apa pun di file buildspec Anda.
CodeBuild buildspecs mendukung daftar langkah GitHub Tindakan berurutan yang berjalan dalam fase terpisah dari perintah. CodeBuild GitHub Tindakan ini terintegrasi dengan fitur yang CodeBuild ada, yang mencakup cache dependensi, build batch, akses ke AWS Secrets Manager, dan banyak lagi.
Topik
- Bagaimana cara memulai menggunakan GitHub Action di buildspec saya?
- GitHub Tindakan apa yang dapat saya gunakan di buildspec saya?
- Dapatkah saya menggunakan penyedia sumber selain GitHub saat menggunakan GitHub Actions di buildspec saya?
- Mengapa saya harus terhubung GitHub sebagai penyedia sumber untuk menggunakan GitHub Actions di buildspec saya?
- Berapa biaya untuk menggunakan GitHub Actions di buildspec saya?
- Wilayah mana yang mendukung penggunaan GitHub Tindakan di buildspec saya?
- Praktik terbaik untuk menggunakan GitHub Actions di buildspec
- Batasan penggunaan GitHub Tindakan di buildspec Anda di CodeBuild
- GitHub Referensi buildspec pelari aksi
- GitHub Sampel sintaks tindakan dengan AWS CodeBuild
Bagaimana cara memulai menggunakan GitHub Action di buildspec saya?
Langkah-langkah tingkat tinggi untuk menggunakan GitHub Action di buildspec Anda adalah sebagai berikut:
-
Jika Anda belum melakukannya, hubungkan proyek Anda ke GitHub.
Untuk melakukannya, Anda dapat melakukan salah satu dari yang berikut:
-
Anda dapat menambahkan GitHub sebagai penyedia sumber di konsol. Untuk informasi selengkapnya, lihat Connect GitHub dengan token akses (konsol) .
-
Anda dapat mengimpor GitHub kredensyal Anda melalui API. CodeBuild Untuk informasi selengkapnya, lihat Connect GitHub dengan token akses (CLI) .
catatan
Ini hanya perlu dilakukan jika Anda belum terhubung GitHub di proyek lain.
-
-
Di buildspec proyek Anda, Anda dapat menambahkan
steps
, yang masing-masing mereferensikan Action. GitHub Ini dapat diedit di CodeBuild konsol atau di repositori sumber Anda. Setiap fase build mendukung daftar perintah atau daftar langkah, tetapi keduanya tidak dapat digunakan dalam fase yang sama. Untuk informasi selengkapnya, lihat Gunakan sintaks GitHub Tindakan di buildspec di AWS CodeBuild.
GitHub Tindakan apa yang dapat saya gunakan di buildspec saya?
Anda dapat menggunakan tindakan apa pun yang tersedia di GitHub Marketplace
Dapatkah saya menggunakan penyedia sumber selain GitHub saat menggunakan GitHub Actions di buildspec saya?
Ya, tetapi menghubungkan ke masih GitHub diperlukan untuk mengautentikasi dengan GitHub dan mengakses GitHub Tindakan. Untuk informasi selengkapnya, lihat GitHub dan token akses Server GitHub Perusahaan.
Mengapa saya harus terhubung GitHub sebagai penyedia sumber untuk menggunakan GitHub Actions di buildspec saya?
Untuk menggunakan GitHub Actions di buildspec Anda, sumber harus diunduh pada komputasi build. Unduhan anonim akan dibatasi tarifnya, jadi dengan menghubungkan ke GitHub, ini dapat membantu memastikan akses yang konsisten.
Berapa biaya untuk menggunakan GitHub Actions di buildspec saya?
Menggunakan GitHub Tindakan di buildspec Anda didukung tanpa biaya tambahan.
Wilayah mana yang mendukung penggunaan GitHub Tindakan di buildspec saya?
Menggunakan GitHub Tindakan di buildspec Anda didukung di semua wilayah. CodeBuild Untuk informasi selengkapnya tentang Wilayah AWS tempat CodeBuild tersedia, lihat AWS Layanan menurut Wilayah
Praktik terbaik untuk menggunakan GitHub Actions di buildspec
GitHub Tindakan bersifat open source, dibangun dan dipelihara oleh masyarakat. Kami mengikuti model tanggung jawab bersama
Panduan yang lebih spesifik dan praktik terbaik keamanan untuk GitHub Tindakan:
Batasan penggunaan GitHub Tindakan di buildspec Anda di CodeBuild
-
GitHub Tindakan di buildspec Anda yang secara internal bergantung pada
github
konteksatau sumber daya GitHub khusus referensi tersebut, seperti permintaan tarik dan masalah, tidak didukung. CodeBuild Misalnya, tindakan berikut tidak akan berfungsi di CodeBuild: -
GitHub Tindakan yang mencoba menambahkan, mengubah, atau memperbarui GitHub sumber daya, seperti tindakan yang memperbarui permintaan tarik, atau membuat masalah GitHub.
catatan
Sebagian besar GitHub Tindakan resmi yang tercantum di https://github.com/actions
bergantung pada github
konteks. Sebagai gantinya, gunakan tindakan yang tersedia di GitHub Marketplace. -
-
GitHub Tindakan dalam buildspec Anda yang merupakan tindakan penampung Docker
akan berfungsi, tetapi proyek build Anda harus mengaktifkan mode istimewa dan dijalankan oleh pengguna Docker default (root). -
Tindakan harus dijalankan sebagai pengguna root. Untuk informasi selengkapnya, lihat topik USER
di dukungan Dockerfile untuk GitHub Tindakan .
-
-
GitHub Tindakan di buildspec Anda tidak didukung dalam CodeBuild proyek yang dikonfigurasi untuk berjalan di Windows.
-
GitHub Pekerjaan tindakan (grup langkah) dan properti pekerjaan GitHub Tindakan di buildspec Anda tidak didukung.
-
GitHub Tindakan dalam buildspec Anda tidak didukung dalam CodeBuild proyek yang dikonfigurasi untuk dipicu oleh webhook untuk repositori Git publik. Untuk informasi lebih lanjut, lihat git-credential-helper.
-
VPC build tanpa akses internet publik tidak dapat menjalankan GitHub Actions di buildspec Anda.
-
Setiap fase build mendukung daftar perintah atau daftar langkah, tetapi keduanya tidak dapat digunakan dalam fase yang sama. Misalnya, dalam contoh berikut, langkah-langkah digunakan dalam fase pra-pembuatan untuk mencantumkan GitHub Tindakan, sementara perintah digunakan dalam fase build untuk mencantumkan CodeBuild perintah.
version: 0.2 phases: pre-build: steps: - name: Lint Code Base uses: github/super-linter@v4 env: VALIDATE_ALL_CODEBASE: 'true' DEFAULT_BRANCH: main build: commands: - echo "Building..." - npm run build
GitHub Referensi buildspec pelari aksi
Topik ini berisi referensi buildspec untuk properti GitHub Action runner.
langkah
Urutan opsional. Langkah-langkah digunakan untuk menjalankan perintah dan tindakan di CodeBuild. Untuk informasi selengkapnya, lihat Gunakan sintaks GitHub Tindakan di buildspec di AWS CodeBuild.
catatan
Setiap fase build mendukung daftar commands
atau daftarsteps
, tetapi keduanya tidak dapat digunakan dalam fase yang sama.
Setiap langkah build berisi properti berikut.
- id
-
Tidak wajib. Pengidentifikasi untuk langkah yang dapat digunakan untuk referensi langkah dalam konteks
lain. - jika
Tidak wajib. Pernyataan bersyarat yang dapat digunakan untuk mencegah langkah berjalan kecuali suatu kondisi terpenuhi. Pernyataan ini dapat menggunakan konteks
yang didukung, seperti referensi variabel lingkungan dari CodeBuild, serta ekspresi . - name
-
Tidak wajib. Nama untuk langkahnya. Jika nama tidak ditentukan, nama akan default ke teks yang ditentukan dalam
run
perintah. - menggunakan
-
Tindakan yang berjalan untuk langkah tersebut. Beberapa tindakan mengharuskan Anda untuk mengatur input menggunakan
with
. Referensikan README tindakan untuk menentukan input mana yang diperlukan. Untuk informasi selengkapnya, lihat GitHub Tindakan apa yang dapat saya gunakan di buildspec saya?.Jika
uses
ditentukan dalam fase build Anda, itu tidak dapat digunakan denganrun
.catatan
Disarankan agar Anda menyertakan versi tindakan yang Anda gunakan. Ini dapat dilakukan dengan menentukan tag Git ref, SHA, atau Docker. Untuk informasi selengkapnya, lihat sintaks steps.uses.
- lari
-
Perintah yang menjalankan program baris perintah. Ini bisa berupa perintah baris tunggal atau perintah multi-baris. Secara default, perintah ini berjalan menggunakan shell non-login. Untuk memilih shell yang berbeda, gunakan
shell
.Jika
run
ditentukan dalam fase build Anda, itu tidak dapat digunakan denganuses
. - cangkang
-
Tidak wajib. Shell yang ditentukan untuk urutan ini. Untuk parameter shell yang didukung, lihat steps.shell
. Jika tidak ditentukan, shell yang digunakan adalah bash. Jika bash tidak tersedia, sh digunakan. - dengan
-
Tidak wajib. Peta parameter input yang ditentukan oleh tindakan. Setiap parameter adalah pasangan kunci/nilai.
- dengan.args
-
Tidak wajib. String yang mendefinisikan input untuk wadah Docker.
- dengan.entrypoint
-
Tidak wajib. Titik masuk Docker ditentukan untuk Dockerfile.
- env
-
Tidak wajib. Variabel yang ditentukan untuk langkah-langkah yang akan digunakan di lingkungan.
- continue-on-error
-
Tidak wajib. Nilai Boolean yang menunjukkan jika kegagalan urutan langkah ini dapat diabaikan.
false
-
Nilai default. Jika urutan langkah ini gagal, build akan gagal.
true
-
Jika urutan langkah ini gagal, build masih bisa berhasil.
- batas waktu-menit
-
Tidak wajib. Jumlah maksimum menit langkah dapat dijalankan sebelum dihentikan. Secara default, tidak ada batas waktu. Jika batas waktu langkah melebihi batas waktu build, langkah akan berhenti saat batas waktu build tercapai.
Berikut ini adalah contoh menggunakan Super-Linter
version: 0.2 phases: build: steps: - name: Lint Code Base uses: github/super-linter@v5 env: VALIDATE_ALL_CODEBASE: true USE_FIND_ALGORITHM: true FILTER_REGEX_INCLUDE: '/github/workspace/buildspec.yml'
GitHub Sampel sintaks tindakan dengan AWS CodeBuild
Grup sampel ini dapat digunakan untuk bereksperimen dengan GitHub Actions di buildspec Anda di. CodeBuild
Topik
Contoh Tindakan Super-Linter GitHub
Contoh ini menunjukkan cara menambahkan GitHub Tindakan Super-Linter
Anda dapat menambahkan GitHub Tindakan Super-Linter ke CodeBuild proyek Anda dengan memperbarui bagian fase file buildspec Anda.
version: 0.2 phases: build: steps: - name: Lint Code Base uses: github/super-linter@v5 env: VALIDATE_ALL_CODEBASE: true
Log Super-Linter akan terlihat mirip dengan yang berikut ini:
/github/workspace/hello-world/app.js:3:13: Extra semicolon.
/github/workspace/hello-world/app.js:9:92: Trailing spaces not allowed.
/github/workspace/hello-world/app.js:21:7: Unnecessarily quoted property 'body' found.
/github/workspace/hello-world/app.js:31:1: Expected indentation of 2 spaces but found 4.
/github/workspace/hello-world/app.js:32:2: Newline required at end of file but not found.
Contoh grafik pembuatan batch
Contoh berikut mendefinisikan grafik build yang membuat rantai ketergantungan dan menjalankan perintah menggunakan. steps
Dalam contoh ini, build1
berjalan terlebih dahulu karena tidak memiliki dependensi. Karena build2
memiliki ketergantungan padabuild1
, jadi build2
jalankan setelah build1 selesai. Untuk informasi, lihat Membangun grafik.
version: 0.2 batch: fast-fail: false build-graph: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 env: variables: BUILD_ID: build2 depend-on: - build1 phases: build: steps: - run: echo $BUILD_ID
Contoh Amazon CodeGuru Reviewer
Amazon CodeGuru Reviewer menemukan masalah dalam kode Java dan Python Anda dan merekomendasikan cara memperbaikinya. Contoh berikut menggunakan CodeGuru Reviewer untuk memberikan ulasan kode analisis repositori lengkap. Ulasan kode ini memindai semua kode di cabang tertentu. Untuk selengkapnya, lihat Membuat ulasan kode dengan GitHub Tindakan di Panduan Pengguna Amazon CodeGuru Reviewer.
version: 0.2 phases: build: steps: - name: Amazon CodeGuru Reviewer Scanner if: ${{ always() }} uses: aws-actions/codeguru-reviewer@v1.1 with: s3_bucket: codeguru-reviewer-user artifacts: files: - codeguru-results.sarif.json
catatan
Bucket Amazon S3 Anda harus dimulai dengan awalan. codeguru-reviewer-
Log akan terlihat mirip dengan yang berikut ini:
INFO CodeReview created with arn=arn:aws:codeguru-reviewer:region
:account-id
:association:id
:code-review:RepositoryAnalysis-job
for job=job
INFO SARIF persisted to /github/workspace/codeguru-results.sarif.json
INFO Amazon CodeGuru Reviewer job execution completed
Setelah pekerjaan Amazon CodeGuru Reviewer selesai, laporan sarif dihasilkan sebagai CodeBuild artefak. Untuk selengkapnya, lihat Analisis repositori lengkap di Panduan Pengguna Amazon CodeGuru Reviewer.
AWS Secrets Manager sampel
AWS Secrets Manager membantu Anda mengelola, mengambil, dan memutar kredensi database, kredensi aplikasi, token OAuth, kunci API, dan rahasia lainnya sepanjang siklus hidupnya. Contoh berikut mendefinisikan rahasia menggunakan Secrets Manager dan menjalankan perintah menggunakansteps
. Untuk informasi, lihat Apa itu AWS Secrets Manager? dalam AWS Secrets Manager User Guide.
version: 0.2 env: secrets-manager: SECRET_VALUE: "arn:aws:secretsmanager:us-east-1:xxxx:secret:/secret-l3IJg9:my_super_secret_key" phases: build: steps: - run: echo $SECRET_VALUE
Log akan terlihat mirip dengan yang berikut ini:
echo $SECRET_VALUE
env:
SECRET_VALUE: ***
***
Sampel variabel lingkungan
Contoh berikut mendefinisikan variabel lingkungan di bawah env
urutan. <bucket-name>Variabel S3_BUCKET
didefinisikan dalam buildspec dan ditetapkan sebagai nilainya. Variabel ini direferensikan dalam kondisional if seperti variabel lingkungan biasa dengan menggunakan tanda dolar ($) untuk mengakses konteks GitHub Action env. Untuk informasi lebih lanjut, lihat envurutan.
version: 0.2 env: variables: S3_BUCKET: "
<bucket-name>
" phases: build: steps: - if: ${{ env.S3_BUCKET == '<bucket-name>
' }} run: echo "S3 bucket is $S3_BUCKET"
Log akan terlihat mirip dengan yang berikut ini:
echo "S3 bucket is $S3_BUCKET"
env:
S3_BUCKET: my-s3-bucket
S3 bucket is my-s3-bucket
Sampel variabel lingkungan yang diekspor
Variabel lingkungan yang diekspor digunakan bersama dengan CodePipeline untuk mengekspor variabel lingkungan dari tahap pembuatan saat ini ke tahap selanjutnya dalam pipeline. Contoh berikut mendefinisikan variabel lingkungan yang diekspor di bawah
env
urutan bernama MY_VARIABLE dan menulis ke file lingkungan GITHUB_ENV
.
version: 0.2 env: exported-variables: - MY_VARIABLE phases: build: steps: - run: echo "MY_VARIABLE=my-value" >> $GITHUB_ENV
Untuk informasi selengkapnya, lihat ExportedEnvironmentVariabledi Referensi AWS CodeBuild API.