Bagikan melalui


Bash@3 - Tugas Bash v3

Gunakan tugas ini untuk menjalankan skrip Bash di macOS, Linux, atau Windows.

Nota

Pada host Windows, ini menjalankan bash dari distribusi default WSL. WSL harus diinstal dan pengguna yang dijalankan agen sebagaimana harus memiliki penyiapan distribusi. WSL diinstal pada gambar agen Windows yang dihosting Microsoft. Untuk informasi selengkapnya, lihat agen yang dihosting Microsoft - Perangkat Lunak.

Sintaksis

# Bash v3
# Run a Bash script on macOS, Linux, or Windows.
- task: Bash@3
  inputs:
    #targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
    filePath: # string. Required when targetType = filePath. Script Path. 
    #arguments: # string. Optional. Use when targetType = filePath. Arguments. 
    #script: # string. Required when targetType = inline. Script. 
  # Advanced
    #workingDirectory: # string. Working Directory. 
    #failOnStderr: false # boolean. Fail on Standard Error. Default: false.
    #bashEnvValue: # string. Set value for BASH_ENV environment variable.
# Bash v3
# Run a Bash script on macOS, Linux, or Windows.
- task: Bash@3
  inputs:
    #targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
    filePath: # string. Required when targetType = filePath. Script Path. 
    #arguments: # string. Optional. Use when targetType = filePath. Arguments. 
    #script: # string. Required when targetType = inline. Script. 
  # Advanced
    #workingDirectory: # string. Working Directory. 
    #failOnStderr: false # boolean. Fail on Standard Error. Default: false.
    #noProfile: true # boolean. Don't load the profile startup/initialization files. Default: true.
    #noRc: true # boolean. Don't read the `~/.bashrc' initialization file. Default: true.

Masukan

Jenis targetType -
string. Nilai yang diizinkan: filePath (Jalur File), inline. Nilai default: filePath.

Jenis skrip target: jalur file atau sebaris.


Jalur Skrip filePath -
string. Diperlukan saat targetType = filePath.

Jalur skrip yang akan dijalankan. Ini harus merupakan jalur yang sepenuhnya memenuhi syarat atau relatif terhadap $(System.DefaultWorkingDirectory).


Argumen
string. Fakultatif. Gunakan saat targetType = filePath.

Argumen diteruskan ke skrip shell. Baik parameter ordinal atau parameter bernama.


Skrip script -
string. Diperlukan saat targetType = inline. Nilai default: # Write your commands here\n\necho 'Hello world'.

Isi skrip.


Direktori Kerja
string.

Menentukan direktori kerja tempat Anda ingin menjalankan perintah. Jika Anda membiarkannya kosong, direktori kerja $(Build.SourcesDirectory).


failOnStderr - Gagal pada Kesalahan Standar
boolean. Nilai default: false.

Jika ini benar, tugas ini akan gagal jika ada kesalahan yang ditulis ke aliran StandardError.


bashEnvValue - Tetapkan nilai untuk variabel lingkungan BASH_ENV
string.

Jika input ditentukan, nilainya diperluas dan digunakan sebagai jalur file startup untuk dijalankan sebelum menjalankan skrip. Jika variabel lingkungan BASH_ENV telah ditentukan, tugas akan mengambil alih variabel ini hanya untuk tugas saat ini. Pelajari selengkapnya tentang Bash Startup Files.


noProfile - Jangan muat file startup/inisialisasi profil
boolean. Nilai default: true.

Jangan muat file startup di seluruh sistem /etc/profile atau file inisialisasi pribadi apa pun.


noRc - **Jangan baca boolean ~/.bashrc' initialization file**<br> . Default value: true'.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugasnya. Untuk informasi selengkapnya, lihat opsi Kontrol dan properti tugas umum.

Variabel output

Tidak ada.

Komentar

Tugas bash memiliki pintasan di YAML: steps.bash.

steps:
- bash: string # Required as first property. An inline script. 
  ## Other task inputs

Tugas Bash akan menemukan implementasi Bash pertama pada sistem Anda. Menjalankan which bash di Linux/macOS atau where bash di Windows akan memberi Anda gambaran tentang mana yang akan dipilihnya.

Info tentang file startup Bash

Tugas Bash memanggil Bash sebagai shell non-interaktif dan non-login. Ketika Bash dimulai secara non-interaktif, untuk menjalankan skrip shell, Bash mencari variabel yang BASH_ENV di lingkungan, membuka nilainya jika muncul di sana, dan menggunakan nilai sebagai nama file untuk dibaca dan dijalankan.

Ada beberapa opsi untuk menentukan variabel lingkungan BASH_ENV dalam alur. Pertama, dimungkinkan untuk mengatur variabel lingkungan BASH_ENV sebagai variabel alur. Dalam hal ini, setiap instans tugas Bash akan mencoba membuka nilai variabel BASH_ENV dan menggunakan nilainya.

variables:
  BASH_ENV: "~/.profile"

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: env

Opsi lain adalah mengatur BASH_ENV untuk satu instans tertentu dari tugas Bash, ada dua cara bagaimana hal ini dapat dilakukan:

Cara pertama adalah menggunakan input tugas bashEnvValue, lihat contoh referensi:

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: env
    bashEnvValue: '~/.profile'

Cara lain adalah mengatur variabel BASH_ENV sebagai variabel lingkungan untuk tugas alur melalui kata kunci env, misalnya:

- task: Bash@3
  inputs:
    targetType: 'inline'
    script: env
  env:
    BASH_ENV: '~/.profile'

Nota

Perhatikan bahwa jika input bashEnvValue ditentukan dalam tugas Bash, tugas alur akan mengambil alih nilai variabel BASH_ENV dengan nilai dari input bashEnvValue dalam kasus ketika variabel lingkungan BASH_ENV sudah ditentukan di lingkungan.

Skrip Bash yang diperiksa ke dalam repositori harus diatur executable (chmod +x). Jika tidak, tugas akan menampilkan peringatan dan source file sebagai gantinya.

Contoh

Anda dapat memetakan dalam variabel menggunakan parameter env yang umum di semua tugas, dan merupakan daftar item tambahan untuk dipetakan ke lingkungan proses. Misalnya, variabel rahasia tidak dipetakan secara otomatis. Jika Anda memiliki variabel rahasia yang disebut Foo, Anda dapat memetakannya seperti ini:

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: echo $MYSECRET
  env:
    MYSECRET: $(Foo)

Di macOS atau Linux, contoh di atas setara dengan:

steps:
- script: echo $MYSECRET
  env:
    MYSECRET: $(Foo)

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak
Kemampuan Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan.
pembatasan Perintah Apapun
variabel yang Dapat Diatur Apapun
Versi agen 2.115.0 atau lebih tinggi
Kategori tugas Utilitas