Astro CI/CD templates for Drone

Use the following CI/CD templates to automate deploying Apache Airflow dags from a Git repository to Astro with Drone CI.

The template for DroneCI is based on the image deploy template with a single branch implementation, which requires only one Astro Deployment.

If you use the dag-only deploy feature on Astro or you’re interested in a multiple-branch implementation, see Template overview to configure your own. To learn more about CI/CD on Astro, see Choose a CI/CD strategy.

Prerequisites

Single branch implementation

  1. Set the following environment variable as a repository-level secret on Drone:
  • ASTRO_API_TOKEN: The value for your Workspace or Organization API token.
  1. In your Drone server, open your Astro project repository and go to Settings > General. Under Project Settings, turn on the Trusted setting.

  2. In the top level of your Git repository, create a file called .drone.yml that includes the following configuration:

1---
2kind: pipeline
3type: docker
4name: deploy
5
6steps:
7 - name: install
8 image: debian
9 commands:
10 - apt-get update
11 - apt-get -y install curl
12 - curl -sSL install.astronomer.io | sudo bash -s
13 - name: wait
14 image: docker:dind
15 volumes:
16 - name: dockersock
17 path: /var/run
18 commands:
19 - sleep 5
20 - name: deploy
21 image: docker:dind
22 volumes:
23 - name: dockersock
24 path: /var/run
25 commands:
26 - astro deploy <your-deployment-id> -f
27 depends on:
28 - wait
29
30 environment:
31 ASTRO_API_TOKEN:
32 from_secret: ASTRO_API_TOKEN
33
34services:
35- name: docker
36 image: docker:dind
37 privileged: true
38 volumes:
39 - name: dockersock
40 path: /var/run
41
42volumes:
43- name: dockersock
44 temp: {}
45
46trigger:
47 branch:
48 - main
49 event:
50 - push