Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow dynamic environment names #320

Open
fabn opened this issue Nov 12, 2024 · 2 comments
Open

Allow dynamic environment names #320

fabn opened this issue Nov 12, 2024 · 2 comments
Labels
question Further information is requested or the issue is a question

Comments

@fabn
Copy link
Contributor

fabn commented Nov 12, 2024

Details

We're using this action to deploy to dynamic environments, e.g. https://feature-1234.example.com where feature-1234 is the environment name. We use a branch slug to create the env name or allow the user to enter his one via .deploy to some-env.

However I need to hack the action to allow these names by doing some github workflows magic, like:

      # Allow to use the custom env name if provided via command (parsed from comment)
      - name: Final Env Name
        id: env
        run: |
          name=${{ steps.custom-env.outputs.result }}

      - uses: github/[email protected]
        id: bot
        with:
          trigger: ".deploy"
          environment: ${{ steps.env.outputs.name }}
          # Don't restrict the list of environments to deploy to, to allow usage of free-name environments
          environment_targets: ${{ steps.env.outputs.name }},staging,canary

It would be very useful to accept a falsey value for environment_targets (or some wildcard chars, or a regex) to allow dynamic env names.

Another option would be to provide an input to skip the environment_targets validation for the action.

Thanks.

@fabn fabn added the question Further information is requested or the issue is a question label Nov 12, 2024
@GrantBirki
Copy link
Member

@fabn thank you for this idea! I can certainly see how this could be useful. Would you be able to provide an example yaml snippet of how you might want this to look to satisfy your use case? An example showing your desired end state would be super helpful. Thank you! 🙏

@fabn
Copy link
Contributor Author

fabn commented Nov 16, 2024

Would you be able to provide an example yaml snippet of how you might want this to look to satisfy your use case?

I guess something like this would be enough for me:

      - uses: github/[email protected]
        id: bot
        with:
          environment: ${{ steps.env.outputs.name }}
          # Don't restrict the list of environments to deploy to, to allow usage of free-name environments
          environment_targets: 'staging,production,dev-*' 
          # Or a regexp, of course you need to choose between targets and regexp, it's confusing to use both
          environment_regexp: 'dev-.*'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested or the issue is a question
Projects
None yet
Development

No branches or pull requests

2 participants