| .. Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| .. http://www.apache.org/licenses/LICENSE-2.0 |
| |
| .. Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| |
| |
| Google Cloud Build Operators |
| ============================ |
| |
| The `GoogleCloud Build <https://cloud.google.com/cloud-build/>`__ is a service that executes your builds on Google Cloud Platform |
| infrastructure. Cloud Build can import source code from Google Cloud Storage, |
| Cloud Source Repositories, execute a build to your specifications, and produce |
| artifacts such as Docker containers or Java archives. |
| |
| .. contents:: |
| :depth: 1 |
| :local: |
| |
| |
| Prerequisite Tasks |
| ^^^^^^^^^^^^^^^^^^ |
| |
| .. include:: _partials/prerequisite_tasks.rst |
| |
| .. _howto/operator:CloudBuildBuild: |
| |
| Build configuration overview |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| In order to trigger a build, it is necessary to pass the build configuration. |
| |
| .. exampleinclude:: ../../../../airflow/contrib/example_dags/example_gcp_cloud_build.py |
| :language: python |
| :dedent: 0 |
| :start-after: [START howto_operator_gcp_create_build_from_storage_body] |
| :end-before: [END howto_operator_gcp_create_build_from_storage_body] |
| |
| The source code for the build can come from `Google Cloud Build Storage <https://cloud.google.com/storage/>`__: |
| |
| .. literalinclude:: ../../../../tests/contrib/operators/test_gcp_cloud_build_operator.py |
| :language: python |
| :dedent: 12 |
| :start-after: [START howto_operator_gcp_cloud_build_source_gcs_dict] |
| :end-before: [END howto_operator_gcp_cloud_build_source_gcs_dict] |
| |
| It is also possible to specify it using the URL: |
| |
| .. literalinclude:: ../../../../tests/contrib/operators/test_gcp_cloud_build_operator.py |
| :language: python |
| :dedent: 12 |
| :start-after: [START howto_operator_gcp_cloud_build_source_gcs_url] |
| :end-before: [END howto_operator_gcp_cloud_build_source_gcs_url] |
| |
| In addition, a build can refer to source stored in `Google Cloud Source Repositories <https://cloud.google.com/source-repositories/docs/>`__. |
| |
| .. literalinclude:: ../../../../tests/contrib/operators/test_gcp_cloud_build_operator.py |
| :language: python |
| :dedent: 12 |
| :start-after: [START howto_operator_gcp_cloud_build_source_repo_dict] |
| :end-before: [END howto_operator_gcp_cloud_build_source_repo_dict] |
| |
| It is also possible to specify it using the URL: |
| |
| .. literalinclude:: ../../../../tests/contrib/operators/test_gcp_cloud_build_operator.py |
| :language: python |
| :dedent: 12 |
| :start-after: [START howto_operator_gcp_cloud_build_source_repo_url] |
| :end-before: [END howto_operator_gcp_cloud_build_source_repo_url] |
| |
| Read `Build Configuration Overview <https://cloud.google.com/cloud-build/docs/build-config>`__ to understand all the fields you can include in a build config file. |
| |
| |
| .. _howto/operator:CloudBuildCreateBuildOperator: |
| |
| Trigger a build |
| ^^^^^^^^^^^^^^^ |
| |
| Trigger a build is performed with the |
| :class:`~airflow.contrib.operators.gcp_cloud_build_operator.CloudBuildCreateBuildOperator` operator. |
| |
| .. exampleinclude:: ../../../../airflow/contrib/example_dags/example_gcp_cloud_build.py |
| :language: python |
| :dedent: 4 |
| :start-after: [START howto_operator_create_build_from_storage] |
| :end-before: [END howto_operator_create_build_from_storage] |
| |
| You can use :ref:`Jinja templating <jinja-templating>` with |
| :template-fields:`airflow.contrib.operators.gcp_cloud_build_operator.CloudBuildCreateBuildOperator` |
| parameters which allows you to dynamically determine values. The result is saved to :ref:`XCom <concepts:xcom>`, which allows it |
| to be used by other operators. |
| |
| .. exampleinclude:: ../../../../airflow/contrib/example_dags/example_gcp_cloud_build.py |
| :language: python |
| :dedent: 4 |
| :start-after: [START howto_operator_create_build_from_storage_result] |
| :end-before: [END howto_operator_create_build_from_storage_result] |
| |
| Reference |
| ^^^^^^^^^ |
| |
| For further information, look at: |
| |
| * `Client Library Documentation <https://developers.google.com/resources/api-libraries/documentation/cloudbuild/v1/python/latest/index.html>`__ |
| * `Product Documentation <https://cloud.google.com/natural-language/docs/>`__ |