Bagikan melalui


Menjalankan alur kerja CI/CD dengan Bundel Aset Databricks dan Tindakan GitHub

Artikel ini menjelaskan cara menjalankan alur kerja CI/CD (integrasi berkelanjutan/penyebaran berkelanjutan) di GitHub dengan GitHub Actions dan Bundel Aset Databricks. Lihat Apa itu Bundel Aset Databricks?

Anda dapat menggunakan GitHub Actions bersama dengan perintah Databricks CLI bundle untuk mengotomatiskan, menyesuaikan, dan menjalankan alur kerja CI/CD Anda dari dalam repositori GitHub Anda.

Anda dapat menambahkan file YAML GitHub Actions seperti berikut ini ke direktori repositori .github/workflows Anda. Contoh berikut file YAML GitHub Actions memvalidasi, menyebarkan, dan menjalankan pekerjaan yang ditentukan dalam bundel dalam target pra-produksi bernama "qa" seperti yang didefinisikan dalam file konfigurasi bundel. Contoh file YAML GitHub Actions ini bergantung pada hal berikut:

  • File konfigurasi bundel di akar repositori, yang secara eksplisit dideklarasikan melalui pengaturan working-directory: . file GITHub Actions YAML (Pengaturan ini dapat dihilangkan jika file konfigurasi bundel sudah berada di akar repositori.) File konfigurasi bundel ini mendefinisikan alur kerja Azure Databricks bernama my-job dan target bernama qa. Lihat Konfigurasi Bundel Aset Databricks.
  • Rahasia GitHub bernama SP_TOKEN, mewakili token akses Azure Databricks untuk perwakilan layanan Azure Databricks yang terkait dengan ruang kerja Azure Databricks tempat bundel ini disebarkan dan dijalankan. Lihat Rahasia terenkripsi.
# This workflow validates, deploys, and runs the specified bundle
# within a pre-production target named "qa".
name: 'QA deployment'

# Ensure that only a single job or workflow using the same concurrency group
# runs at a time.
concurrency: 1

# Trigger this workflow whenever a pull request is opened against the repo's
# main branch or an existing pull request's head branch is updated.
on:
  pull_request:
    types:
      - opened
      - synchronize
    branches:
      - main

jobs:
  # Used by the "pipeline_update" job to deploy the bundle.
  # Bundle validation is automatically performed as part of this deployment.
  # If validation fails, this workflow fails.
  deploy:
    name: 'Deploy bundle'
    runs-on: ubuntu-latest

    steps:
      # Check out this repo, so that this workflow can access it.
      - uses: actions/checkout@v3

      # Download the Databricks CLI.
      # See https://github.com/databricks/setup-cli
      - uses: databricks/setup-cli@main

      # Deploy the bundle to the "qa" target as defined
      # in the bundle's settings file.
      - run: databricks bundle deploy
        working-directory: .
        env:
          DATABRICKS_TOKEN: ${{ secrets.SP_TOKEN }}
          DATABRICKS_BUNDLE_ENV: qa

  # Validate, deploy, and then run the bundle.
  pipeline_update:
    name: 'Run pipeline update'
    runs-on: ubuntu-latest

    # Run the "deploy" job first.
    needs:
      - deploy

    steps:
      # Check out this repo, so that this workflow can access it.
      - uses: actions/checkout@v3

      # Use the downloaded Databricks CLI.
      - uses: databricks/setup-cli@main

      # Run the Databricks workflow named "my-job" as defined in the
      # bundle that was just deployed.
      - run: databricks bundle run my-job --refresh-all
        working-directory: .
        env:
          DATABRICKS_TOKEN: ${{ secrets.SP_TOKEN }}
          DATABRICKS_BUNDLE_ENV: qa

File YAML GitHub Actions berikut dapat ada di repositori yang sama dengan file sebelumnya. File ini memvalidasi, menyebarkan, dan menjalankan bundel yang ditentukan dalam target produksi bernama "prod" seperti yang didefinisikan dalam file konfigurasi bundel. Contoh file YAML GitHub Actions ini bergantung pada hal berikut:

  • File konfigurasi bundel di akar repositori, yang secara eksplisit dideklarasikan melalui pengaturan working-directory: . file GITHub Actions YAML (Pengaturan ini dapat dihilangkan jika file konfigurasi bundel sudah berada di akar repositori.). File konfigurasi bundel ini mendefinisikan alur kerja Azure Databricks bernama my-job dan target bernama prod. Lihat Konfigurasi Bundel Aset Databricks.
  • Rahasia GitHub bernama SP_TOKEN, mewakili token akses Azure Databricks untuk perwakilan layanan Azure Databricks yang terkait dengan ruang kerja Azure Databricks tempat bundel ini disebarkan dan dijalankan. Lihat Rahasia terenkripsi.
# This workflow validates, deploys, and runs the specified bundle
# within a production target named "prod".
name: 'Production deployment'

# Ensure that only a single job or workflow using the same concurrency group
# runs at a time.
concurrency: 1

# Trigger this workflow whenever a pull request is pushed to the repo's
# main branch.
on:
  push:
    branches:
      - main

jobs:
  deploy:
    name: 'Deploy bundle'
    runs-on: ubuntu-latest

    steps:
      # Check out this repo, so that this workflow can access it.
      - uses: actions/checkout@v3

      # Download the Databricks CLI.
      # See https://github.com/databricks/setup-cli
      - uses: databricks/setup-cli@main

      # Deploy the bundle to the "prod" target as defined
      # in the bundle's settings file.
      - run: databricks bundle deploy
        working-directory: .
        env:
          DATABRICKS_TOKEN: ${{ secrets.SP_TOKEN }}
          DATABRICKS_BUNDLE_ENV: prod

  # Validate, deploy, and then run the bundle.
  pipeline_update:
    name: 'Run pipeline update'
    runs-on: ubuntu-latest

    # Run the "deploy" job first.
    needs:
      - deploy

    steps:
      # Check out this repo, so that this workflow can access it.
      - uses: actions/checkout@v3

      # Use the downloaded Databricks CLI.
      - uses: databricks/setup-cli@main

      # Run the Databricks workflow named "my-job" as defined in the
      # bundle that was just deployed.
      - run: databricks bundle run my-job --refresh-all
        working-directory: .
        env:
          DATABRICKS_TOKEN: ${{ secrets.SP_TOKEN }}
          DATABRICKS_BUNDLE_ENV: prod

Lihat juga