Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara kerja Azure Pipelines dengan aplikasi JavaScript. Agen yang dihosting Microsoft telah menginstal alat build, pengujian, dan penyebaran JavaScript umum seperti npm, Node.js, Yarn, dan Gulp tanpa mengharuskan Anda menyiapkan infrastruktur apa pun. Anda juga dapat mengonfigurasi agen yang dihost sendiri.
Untuk membuat alur untuk JavaScript dengan cepat, lihat mulai cepat JavaScript.
Penginstal alat Node
Untuk menginstal versi Node.js dan npm yang tidak diinstal sebelumnya, atau untuk menginstal alat pada agen yang dihost sendiri:
- Jalankan perintah
npm i -g npm@version-numberuntuk npm di alur Anda. - Untuk Node.js, tambahkan tugas Gunakan ekosistem Node.js v1 (UseNode@1) ke alur Anda.
Untuk menginstal versi Node.js tertentu, tambahkan kode berikut ke file azure-pipelines.yml Anda:
- task: UseNode@1
inputs:
version: '16.x' # replace with the version you need
Catatan
Tugas ini dapat memerlukan waktu yang signifikan untuk memperbarui ke versi minor yang lebih baru setiap kali alur kerja dijalankan. Agen yang dihosting Microsoft diperbarui secara berkala, jadi gunakan tugas ini hanya untuk menginstal versi Node tertentu yang tidak diinstal sebelumnya. Untuk mengetahui versi Node.js dan npm apa yang telah diinstal sebelumnya pada agen yang dihosting Microsoft, lihat Perangkat Lunak.
Menggunakan beberapa versi simpul
Anda dapat menggunakan tugas Gunakan Node.js ekosistem v1 dengan matrix strategi untuk membangun dan menguji aplikasi Anda di beberapa versi Node.js. Untuk informasi selengkapnya, lihat Konfigurasi multi-pekerjaan.
pool:
vmImage: 'ubuntu-latest'
strategy:
matrix:
node_16_x:
node_version: 16.x
node_13_x:
node_version: 18.x
steps:
- task: UseNode@1
inputs:
version: $(node_version)
- script: npm install
Penginstalan perangkat dependensi
Jika Anda memiliki alat dan dependensi pengembangan dalam file package.json atau package-lock.json, instal alat dan dependensi melalui npm. File proyek menentukan versi alat yang tepat, independen dari versi lain yang ada di agen build.
Untuk menginstal alat ini pada agen build Anda, gunakan skrip, tugas npm , atau tugas baris perintah di alur Anda.
Untuk menggunakan skrip:
- script: npm install --only=dev
Untuk menggunakan tugas npm:
- task: Npm@1
inputs:
command: 'install'
Alat yang Anda instal dengan cara ini menggunakan runner paket npm npx , yang mendeteksi alat dalam resolusi PATH-nya. Contoh berikut memanggil penggerak pengujian mocha, dan menggunakan versi dependensi pengembang daripada versi yang diinstal secara global melalui npm install -g.
- script: npx mocha
Untuk menginstal alat yang dibutuhkan oleh proyek Anda yang tidak ditetapkan sebagai dependensi pengembangan di package.json, panggil npm install -g dari skrip di pipeline Anda. Contoh berikut menginstal versi terbaru Angular CLI dengan menggunakan npm. Skrip lain dalam alur kemudian dapat menggunakan perintah Angular ng .
- script: npm install -g @angular/cli
Catatan
Pada agen Linux yang dihosting Microsoft, awali perintah dengan sudo, seperti sudo npm install -g.
Tugas penginstalan alat ini dijalankan setiap kali pipeline dijalankan, jadi perhatikan dampaknya pada waktu kompilasi. Jika overhead berdampak serius pada performa build, pertimbangkan untuk menggunakan agen yang dihost sendiri yang telah dikonfigurasi sebelumnya dengan versi alat yang Anda butuhkan.
Catatan
Tugas penginstalan alat ini dijalankan setiap kali pipeline dijalankan, jadi perhatikan dampaknya pada waktu kompilasi.
Unduhan paket dependensi
Anda dapat menggunakan Yarn atau Azure Artifacts untuk mengunduh paket dari registri npm publik atau registri npm privat yang Anda tentukan dalam file *.npmrc . Untuk menentukan registri npm, tambahkan URL-nya ke file *.npmrc di repositori kode Anda.
Menggunakan npm
Anda dapat menggunakan npm untuk mengunduh paket build di alur Anda dengan cara berikut:
- Untuk cara paling sederhana untuk mengunduh paket tanpa autentikasi, langsung jalankan
npm install. - Untuk menggunakan registri terautentikasi, tambahkan tugas npm .
- Untuk menjalankan
npm installdari dalam alat penjalankan tugas Gulp, Grunt, atau Maven, gunakan tugas npm authenticate.
Catatan
Jika umpan npm Anda menggunakan autentikasi, Anda harus membuat koneksi layanan npm pada tab Layanan di pengaturan Proyek Azure DevOps untuk mengelola kredensialnya.
Untuk menginstal paket npm secara langsung, gunakan skrip berikut di azure-pipelines.yml. Jika agen build Anda tidak memerlukan dependensi pengembangan, Anda dapat mempercepat waktu build dengan menambahkan --only=prod opsi ke npm install.
- script: npm install --only=prod
Untuk menggunakan registri privat yang ditentukan dalam file *.npmrc Anda, tambahkan tugas ke Npm@1azure-pipelines.yml.
- task: Npm@1
inputs:
customEndpoint: <Name of npm service connection>
Untuk meneruskan kredensial registri ke perintah npm melalui pelari tugas seperti Gulp, tambahkan npmAuthenticate@0 tugas ke azure-pipelines.yml sebelum Anda memanggil pelari tugas.
- task: npmAuthenticate@0
inputs:
customEndpoint: <Name of npm service connection>
Catatan
Agen yang dihosting Microsoft menggunakan komputer baru dengan setiap build. Memulihkan dependensi dapat memakan waktu yang signifikan. Untuk mengurangi masalah, Anda dapat menggunakan Azure Artifacts atau agen yang dihostkan sendiri dengan cache paket.
Jika build Anda terkadang gagal karena masalah koneksi saat Memulihkan paket dari registri npm, Anda dapat menggunakan Azure Artifacts dengan sumber upstream untuk menyimpan paket. Azure Artifacts secara otomatis menggunakan kredensial pipeline, yang biasanya berasal dari akun Project Collection Build Service.
Catatan
Memulihkan dependensi dapat memakan waktu yang signifikan. Untuk mengurangi masalah, Anda dapat menggunakan Azure Artifacts atau agen yang dihostkan sendiri dengan cache paket.
Jika build Anda terkadang gagal karena masalah koneksi saat Memulihkan paket dari registri npm, Anda dapat menggunakan Azure Artifacts dengan sumber upstream untuk menyimpan paket. Azure Artifacts secara otomatis menggunakan kredensial pipeline, yang biasanya berasal dari akun Project Collection Build Service.
Gunakan Yarn
Gunakan skrip untuk menginstal Yarn untuk memulihkan dependensi. Yarn telah diinstal sebelumnya pada beberapa agen yang dihosting Microsoft. Anda dapat menginstal dan mengonfigurasi Yarn pada agen yang dihost sendiri seperti alat lain.
- script: yarn install
Anda juga dapat menggunakan tugas CLI atau Bash di alur Anda untuk memanggil Yarn.
Kompiler JavaScript
Aplikasi JavaScript menggunakan kompilator seperti Babel dan pengkompilasi TypeScripttsc untuk mengonversi kode sumber menjadi versi yang dapat digunakan oleh runtime Node.js atau di browser web. Jika Anda memiliki objek skrip yang disiapkan di file package.json proyek untuk menjalankan pengkompilasi, Anda dapat memanggilnya di alur Anda.
- script: npm run compile
Anda juga dapat memanggil pengkompilasi langsung dari alur dengan menggunakan skrip. Perintah ini berjalan dari akar repositori kode sumber kloning.
- script: tsc --target ES6 --strict true --project tsconfigs/production.json
Anda dapat menggunakan tugas npm untuk membangun kode jika proyek Anda package.json menentukan skrip kompilasi. Jika Anda tidak menentukan skrip kompilasi, Anda dapat menggunakan tugas Bash untuk mengkompilasi kode Anda.
Pengujian unit
Anda dapat mengonfigurasi alur untuk menjalankan pengujian JavaScript sehingga menghasilkan hasil dalam format XML JUnit. Anda kemudian dapat menerbitkan hasilnya menggunakan tugas Terbitkan hasil pengujian .
Jika kerangka kerja pengujian Anda tidak mendukung output JUnit, tambahkan dukungan melalui modul pelaporan mitra seperti mocha-junit-reporter. Anda dapat memperbarui skrip pengujian untuk menggunakan reporter JUnit, atau meneruskan opsi tersebut ke definisi tugas jika reporter mendukung opsi baris perintah.
Tabel berikut ini mencantumkan pelari uji yang paling umum digunakan dan wartawan yang bisa Anda gunakan untuk menghasilkan hasil XML:
| Uji runner | Reporter untuk Laporan XML |
|---|---|
| Mocha |
mocha-junit-reporter cypress-multi-reporters |
| Jasmine | jasmine-reporters |
| Jest |
jest-junit jest-junit-reporter |
| Karma | karma-junit-reporter |
| Ava | tap-xunit |
Contoh berikut menggunakan mocha-junit-reporter dan memanggil mocha test langsung dengan menggunakan skrip. Skrip ini menghasilkan output XML JUnit di lokasi default ./test-results.xml.
- script: mocha test --reporter mocha-junit-reporter
Jika Anda menentukan test skrip dalam file package.json proyek, Anda dapat memanggilnya dengan menggunakan npm test.
- script: npm test
Menerbitkan hasil pengujian
Untuk menerbitkan hasil pengujian, gunakan tugas Terbitkan hasil pengujian .
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testRunner: JUnit
testResultsFiles: '**/test-results.xml'
Menerbitkan hasil cakupan kode
Jika skrip pengujian Anda menjalankan alat cakupan kode seperti Istanbul, tambahkan tugas Terbitkan hasil cakupan kode . Anda kemudian dapat melihat metrik cakupan dalam ringkasan build dan mengunduh laporan HTML untuk analisis lebih lanjut.
Tugas ini mengharapkan hasil laporan dari Cobertura atau JaCoCo. Pastikan alat cakupan kode Anda berjalan dengan opsi yang diperlukan untuk menghasilkan output yang tepat, misalnya --report cobertura.
Contoh berikut menggunakan antarmuka baris perintah Istanbul nyc bersama dengan mocha-junit-reporter, dan memanggil npm test.
- script: |
nyc --reporter=cobertura --reporter=html \
npm test -- --reporter mocha-junit-reporter --reporter-options mochaFile=./test-results.xml
displayName: 'Build code coverage report'
- task: PublishCodeCoverageResults@2
inputs:
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/*coverage.xml'
Pengujian browser end-to-end
Alur Anda dapat menggunakan alat seperti Protractor atau Karma untuk menjalankan pengujian di browser headless, lalu menerbitkan hasil pengujian. Untuk mengonfigurasi pengujian browser dan menerbitkan hasil, ikuti langkah-langkah berikut:
- Instal driver pengujian browser tanpa kepala, seperti Headless Chrome atau Headless Firefox, atau alat simulasi browser, seperti PhantomJS, pada agen build.
- Konfigurasikan kerangka kerja pengujian Anda untuk menggunakan opsi browser atau driver tanpa kepala sesuai dengan dokumentasi alat.
- Konfigurasikan kerangka kerja pengujian Anda untuk menghasilkan hasil pengujian berformat JUnit, biasanya dengan plug-in atau konfigurasi reporter.
- Tambahkan tugas skrip atau CLI untuk memulai instans browser headless.
- Jalankan pengujian end-to-end dalam tahap alur bersama dengan pengujian unit Anda.
- Terbitkan hasil bersama dengan pengujian unit Anda dengan menggunakan tugas Terbitkan hasil pengujian yang sama.
Pengemasan dan pengiriman
Setelah membuat dan menguji aplikasi, Anda dapat:
- Unggah output build ke Azure Pipelines.
- Buat dan terbitkan paket npm atau Maven.
- Kemas output build ke dalam arsip ZIP untuk penyebaran ke aplikasi web.
Menerbitkan file ke Azure Pipelines
Untuk mengunggah seluruh direktori kerja, tambahkan tugas Publish build artifacts ke file azure-pipelines.yml Anda.
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(System.DefaultWorkingDirectory)'
Untuk mengunggah subset file, salin file yang diperlukan terlebih dahulu dari direktori kerja ke direktori penahapan dengan tugas Salin file, lalu gunakan tugas Publikasikan artefak build.
- task: CopyFiles@2
inputs:
SourceFolder: '$(System.DefaultWorkingDirectory)'
Contents: |
**\*.js
package.json
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
Menerbitkan modul ke registri npm
Jika output proyek Anda adalah npm modul untuk digunakan proyek lain dan bukan aplikasi web, gunakan tugas npm untuk menerbitkan modul ke registri lokal atau ke registri npm publik. Berikan kombinasi nama/versi unik setiap kali Anda menerbitkan.
Contoh berikut menggunakan skrip untuk menerbitkan ke registri npm publik. Contoh mengasumsikan bahwa Anda mengelola informasi versi seperti versi npm melalui file package.json dalam kontrol versi.
- script: npm publish
Contoh berikut menerbitkan ke registri kustom yang ditentukan dalam repositori file *.npmrc Anda. Siapkan koneksi layanan npm untuk menyuntikkan kredensial autentikasi ke dalam koneksi saat build berjalan.
- task: Npm@1
inputs:
command: publish
publishRegistry: useExternalRegistry
publishEndpoint: https://my.npmregistry.com
Contoh berikut menerbitkan modul ke umpan manajemen paket Azure DevOps Services.
- task: Npm@1
inputs:
command: publish
publishRegistry: useFeed
publishFeed: https://my.npmregistry.com
Untuk informasi selengkapnya tentang penerapan versi dan penerbitan paket npm, lihat Menerbitkan paket npm dan Bagaimana cara membuat versi paket npm saya sebagai bagian dari proses build.
Mengemas dan menyebarkan aplikasi web
Anda dapat mengemas aplikasi untuk memaketkan semua modul dengan output perantara dan dependensi ke dalam aset statis yang siap untuk penyebaran. Tambahkan tahap alur setelah kompilasi dan pengujian untuk menjalankan alat seperti webpack atau build ng Angular CLI.
Contoh berikut memanggil webpack. Agar proses ini berfungsi, pastikan webpack dikonfigurasi sebagai dependensi pengembangan dalam file proyek package.json Anda. Skrip ini berjalan webpack dengan konfigurasi default, kecuali Anda memiliki file webpack.config.js di folder akar proyek Anda.
- script: webpack
Contoh berikut menggunakan npm run build untuk memanggil objek skrip yang build ditentukan dalam file package.json proyek. Menggunakan objek skrip dalam proyek Anda memindahkan logika kompilasi ke dalam kode sumber dan keluar dari proses pipeline.
- script: npm run build
Anda juga dapat menggunakan tugas CLI atau Bash di alur Anda untuk memanggil alat pengemasan Anda, seperti webpack atau Angular ng build.
Untuk membuat arsip file *.zip yang siap diterbitkan ke aplikasi web, gunakan tugas File arsip .
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
includeRootFolder: false
Untuk menerbitkan arsip ini ke aplikasi web, lihat Menyebarkan ke Azure App Service dengan menggunakan Azure Pipelines.
Kerangka kerja JavaScript
Anda dapat menginstal paket di alur Anda untuk mendukung berbagai kerangka kerja JavaScript.
Sudut
Untuk aplikasi Angular, Anda dapat menjalankan perintah khusus Angular seperti ng test, , ng builddan ng e2e. Untuk menggunakan perintah Angular CLI di alur Anda, instal paket npm angular/cli pada agen build.
- script: |
npm install -g @angular/cli
npm install
ng build --prod
Catatan
Pada agen Linux yang dihosting Microsoft, awali perintah dengan sudo, seperti sudo npm install -g.
Untuk pengujian di alur Anda yang mengharuskan browser berjalan, seperti menjalankan Karma dengan ng test perintah, gunakan browser headless alih-alih browser standar. Di aplikasi starter Angular:
-
browsersUbah entri dalam file proyek karma.conf.js Anda daribrowsers: ['Chrome']kebrowsers: ['ChromeHeadless']. -
singleRunUbah entri dalam file proyek karma.conf.js Anda darifalseketrue. Perubahan ini membantu memastikan bahwa proses Karma berhenti setelah berjalan.
React dan Vue
Semua dependensi untuk aplikasi React dan Vue diambil dalam file package.json Anda. File azure-pipelines.yml Anda berisi skrip standar npm .
- script: |
npm install
displayName: 'npm install'
- script: |
npm run build
displayName: 'npm build'
File build berada di folder baru, dist untuk Vue atau build untuk React. Contoh berikut membangun artefak, www, yang siap untuk rilis. Alur menggunakan tugas Gunakan Node.js, Salin file, dan Terbitkan artefak build .
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UseNode@1
inputs:
version: '16.x'
displayName: 'Install Node.js'
- script: npm install
displayName: 'npm install'
- script: npm run build
displayName: 'npm build'
- task: CopyFiles@2
inputs:
Contents: 'build/**' # Pull the build directory (React)
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory) # dist or build files
ArtifactName: 'www' # output artifact named www
Untuk merilis aplikasi, konfigurasikan tugas rilis Anda ke artefak dist atau build dan gunakan tugas Azure Web App.
Paket web
Anda dapat menggunakan file konfigurasi paket web untuk menentukan pengkompilasi seperti Babel atau TypeScript, untuk menerjemahkan JavaScript XML (JSX) atau TypeScript ke JavaScript biasa, dan untuk memaketkan aplikasi Anda.
- script: |
npm install webpack webpack-cli --save-dev
npx webpack --config webpack.config.js
Membangun pelari tugas
Biasanya menggunakan Gulp atau Grunt sebagai pemroses tugas untuk membangun dan menguji aplikasi JavaScript.
Gulp
Gulp telah diinstal sebelumnya pada agen yang dihosting Microsoft.
Anda dapat menjalankan gulp perintah dalam file alur YAML.
- script: gulp # add any needed options
Jika langkah-langkah dalam file gulpfile.js Anda memerlukan autentikasi dengan registri npm, tambahkan tugas autentikasi npm .
- task: npmAuthenticate@0
inputs:
customEndpoint: <Name of npm service connection>
- script: gulp
Untuk menerbitkan hasil pengujian JUnit atau xUnit ke server, tambahkan tugas Terbitkan hasil pengujian .
- task: PublishTestResults@2
inputs:
testResultsFiles: '**/TEST-RESULTS.xml'
testRunTitle: 'Test results for JavaScript using gulp'
Untuk menerbitkan hasil cakupan kode ke server, tambahkan tugas Terbitkan hasil cakupan kode . Anda dapat menemukan metrik cakupan dalam ringkasan build, dan Anda dapat mengunduh laporan HTML untuk analisis lebih lanjut.
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/*coverage.xml'
reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'
Grunt
Grunt telah diinstal sebelumnya pada agen yang dihosting Microsoft.
Anda dapat menjalankan grunt perintah dalam file YAML.
- script: grunt # add any needed options
Jika langkah-langkah dalam file Gruntfile.js Anda memerlukan autentikasi dengan registri npm, tambahkan tugas autentikasi npm .
- task: npmAuthenticate@0
inputs:
customEndpoint: <Name of npm service connection>
- script: grunt
Troubleshooting
Jika Anda dapat membangun proyek di komputer pengembangan tetapi tidak dapat membuatnya di Azure Pipelines, jelajahi potensi penyebab dan tindakan korektif berikut.
Periksa apakah versi Node.js dan pengelola tugas pada mesin pengembangan Anda cocok dengan yang ada di agen.
Anda dapat menyertakan skrip baris perintah seperti
node --versiondi alur Anda untuk memeriksa versi yang diinstal pada agen. Gunakan tugasUse Node.jsuntuk menginstal versi yang sama pada agen, atau jalankan perintahnpm installuntuk memperbarui versi alat.Jika build Anda gagal sesekali saat Anda memulihkan paket, registri npm mengalami masalah, atau ada masalah jaringan antara pusat data Azure dan registri. Jelajahi apakah menggunakan Artefak Azure dengan registri npm sebagai sumber hulu meningkatkan keandalan build Anda.
Jika Anda menggunakan
nvmuntuk mengelola versi Node.jsyang berbeda, pertimbangkan untuk beralih ke tugas Gunakan Node.js (UseNode@1).nvmdiinstal karena alasan historis pada citra macOS.nvmmengelola beberapa versi Node.js dengan menambahkan alias shell dan mengubahPATH, yang berinteraksi dengan buruk dengan cara Azure Pipelines menjalankan setiap tugas dalam proses baru. Untuk informasi selengkapnya, lihat Pipeline eksekusi.Tugas
Use Node.jsmenangani model ini dengan benar. Namun, jika pekerjaan Anda memerlukan penggunaannvm, Anda dapat menambahkan skrip berikut ke awal setiap alur:steps: - bash: | NODE_VERSION=16 # or your preferred version npm config delete prefix # avoid a warning . ${NVM_DIR}/nvm.sh nvm use ${NODE_VERSION} nvm alias default ${NODE_VERSION} VERSION_PATH="$(nvm_version_path ${NODE_VERSION})" echo "##vso[task.prependPath]$VERSION_PATH"Kemudian,
nodedan alat baris perintah lainnya berfungsi untuk sisa pekerjaan alur. Di setiap langkah di mana Anda menggunakannvmperintah , mulai skrip dengan kode berikut:- bash: | . ${NVM_DIR}/nvm.sh nvm <command>
FAQ
Bagaimana cara memperbaiki kegagalan alur dengan pesan 'KESALAHAN FATAL: alokasi CALL_AND_RETRY_LAST gagal - Tumpukan JavaScript kehabisan memori'?
Jenis kegagalan ini terjadi ketika paket Node.js melebihi batas penggunaan memori. Untuk mengatasi masalah ini, tambahkan variabel seperti NODE_OPTIONS dan tetapkan nilai --max_old_space_size=16384.
Bagaimana cara membuat versi paket npm saya sebagai bagian dari proses build?
Salah satu opsinya adalah menggunakan kombinasi kontrol versi dan versi npm. Di akhir eksekusi alur, Anda dapat memperbarui repositori dengan versi baru. Alur YAML berikut memiliki repositori GitHub, dan paket disebarkan ke npmjs. Build gagal jika ada ketidakcocokan antara versi paket pada npmjs dan file package.json .
variables:
MAP_NPMTOKEN: $(NPMTOKEN) # Mapping secret var
trigger:
- none
pool:
vmImage: 'ubuntu-latest'
steps: # Checking out connected repo
- checkout: self
persistCredentials: true
clean: true
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
customEndpoint: 'my-npm-connection'
- task: UseNode@1
inputs:
version: '16.x'
displayName: 'Install Node.js'
- script: |
npm install
displayName: 'npm install'
- script: |
npm pack
displayName: 'Package for release'
- bash: | # Grab the package version
v=`node -p "const p = require('./package.json'); p.version;"`
echo "##vso[task.setvariable variable=packageVersion]$v"
- task: CopyFiles@2
inputs:
contents: '*.tgz'
targetFolder: $(Build.ArtifactStagingDirectory)/npm
displayName: 'Copy archives to artifacts staging directory'
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: 'package.json'
targetFolder: $(Build.ArtifactStagingDirectory)/npm
displayName: 'Copy package.json'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/npm'
artifactName: npm
displayName: 'Publish npm artifact'
- script: | # Config can be set in .npmrc
npm config set //registry.npmjs.org/:_authToken=$(MAP_NPMTOKEN)
npm config set scope "@myscope"
# npm config list
# npm --version
npm version patch --force
npm publish --access public
- task: CmdLine@2 # Push changes to GitHub (substitute your repo)
inputs:
script: |
git config --global user.email "username@contoso.com"
git config --global user.name "Azure Pipeline"
git add package.json
git commit -a -m "Test Commit from Azure DevOps"
git push -u origin HEAD:main
Konten terkait
- Untuk informasi selengkapnya tentang Artefak Azure dan layanan Manajemen Paket, lihat Manajemen Paket di Artefak Azure.
- Untuk informasi selengkapnya tentang tugas, lihat Tugas build, rilis, dan pengujian.