{"id":32845,"date":"2023-02-15T06:43:20","date_gmt":"2023-02-15T06:43:20","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=32845"},"modified":"2023-02-15T06:43:22","modified_gmt":"2023-02-15T06:43:22","slug":"github-action-example-code-to-call-terraform-apply-command","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/github-action-example-code-to-call-terraform-apply-command\/","title":{"rendered":"Github Action Example code to Call terraform apply command"},"content":{"rendered":"\n<p>This workflow:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>is triggered on a push to the <code>main<\/code> branch.<\/li>\n\n\n\n<li>runs on an Ubuntu runner.<\/li>\n\n\n\n<li>checks out the repository code.<\/li>\n\n\n\n<li>sets up Terraform using the HashiCorp setup action and specifies the version of Terraform to use.<\/li>\n\n\n\n<li>runs <code>terraform init<\/code> to initialize the working directory.<\/li>\n\n\n\n<li>runs <code>terraform apply -auto-approve<\/code> to apply the changes in the Terraform configuration.<\/li>\n<\/ul>\n\n\n\n<p>In this example, we also pass an environment variable <code>TF_VAR_my_variable<\/code> to the <code>terraform apply<\/code> command. The value of this variable is retrieved from a GitHub secret named <code>MY_SECRET<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">name: Terraform Apply\r\n\r\n<span class=\"hljs-attr\">on<\/span>:\r\n  push:\r\n    branches:\r\n      - main\r\n\r\n<span class=\"hljs-attr\">jobs<\/span>:\r\n  terraform_apply:\r\n    runs-on: ubuntu-latest\r\n    <span class=\"hljs-attr\">steps<\/span>:\r\n      - name: Checkout code\r\n        <span class=\"hljs-attr\">uses<\/span>: actions\/checkout@v2\r\n\r\n      - name: Setup Terraform\r\n        <span class=\"hljs-attr\">uses<\/span>: hashicorp\/setup-terraform@v1\r\n        <span class=\"hljs-attr\">with<\/span>:\r\n          terraform_version: <span class=\"hljs-string\">'1.0.4'<\/span>\r\n\r\n      - name: Terraform Init\r\n        <span class=\"hljs-attr\">run<\/span>: terraform init\r\n\r\n      - name: Terraform Apply\r\n        <span class=\"hljs-attr\">env<\/span>:\r\n          TF_VAR_my_variable: ${{ secrets.MY_SECRET }}\r\n        <span class=\"hljs-attr\">run<\/span>: terraform apply -auto-approve\r\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>","protected":false},"excerpt":{"rendered":"<p>This workflow: In this example, we also pass an environment variable TF_VAR_my_variable to the terraform apply command. The value of this variable is retrieved from a GitHub secret named MY_SECRET.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-32845","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/32845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=32845"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/32845\/revisions"}],"predecessor-version":[{"id":32846,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/32845\/revisions\/32846"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=32845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=32845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=32845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}