DEV Community

kosei
kosei

Posted on • Originally published at qiita.com

How to Set Dynamic Release URLs in Environment with GitHub Actions

Introduction

This article explains how to dynamically set a release URL in an Environment using GitHub Actions.

Background

GitHub Actions has a feature for defining environments called Environment.
Using environments for deployment - GitHub

For example, by setting up environments like the following, it's possible to switch the release destination. (You can set any name you want.)

  • Production environment
  • Staging environment
  • Testing environment
  • Development environment

Among these, there is a function to display the URL of the release destination after releasing.

GitHub Actions Release URL

If there's only one fixed environment, it's not a problem. However, if the URL is determined dynamically during the release steps, it was unclear how to display it, so I'm documenting the method here.

If it's a single environment, you can set the URL as follows.

environment:
    name: production
    url: https://example.com
Enter fullscreen mode Exit fullscreen mode

How To

The method is simple: save the value in an output during the step when the URL is confirmed, and then set that output as the environment's URL.

Here is a sample Yaml. You need to assign a reference ID to the step. The format for referencing the output is steps.[step_id].outputs.[output_name].

environment:
    name: development
    url: ${{ steps.get_release_url.outputs.release_url }}

steps:
    - name: Set release url
      id: get_release_url
      run: echo release_url=https://xxx.example.com >> $GITHUB_OUTPUT
Enter fullscreen mode Exit fullscreen mode

Conclusion

The method to dynamically set the URL of a release in GitHub Actions' Environment is to save a value in the output during the release step, and then set that output name as the URL in the environment.

Top comments (0)