balena-io / deploy-to-balena-action

Official Github action to deploy releases to balenaCloud environments
Apache License 2.0
38 stars 13 forks source link

Option for multiple bundles #250

Open wallem89 opened 1 year ago

wallem89 commented 1 year ago

I want to make multiple bundles from the same repository. This repository has for each bundle a github workflow defined and they are referring to a template with the deploy-to-balena-action.

Bundle specific workflow bundle.yml:

...
jobs:
  deploy:
    name: fleet/master
    uses: ./.github/workflows/template.yml
    with:
      fleet: fleet
      bundle: master
    secrets:
      BALENA_API_TOKEN: ${{secrets.BALENA_API_TOKEN}}
      AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
      AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
      ECR_REPOSITORY_URL: ${{secrets.ECR_REPOSITORY_URL}}
...

Template template.yml:

...

      - name: Deploy fleets/${{inputs.fleet}}/bundles/${{inputs.bundle}} to Balena
        uses: balena-io/deploy-to-balena-action@v0.11.0
        id: balena_deploy
        with:
          balena_token: ${{ secrets.BALENA_API_TOKEN }}
          fleet: softwareX/${{inputs.fleet}}
          source: fleets/${{inputs.fleet}}/bundles/${{inputs.bundle}}
          registry_secrets: |
            {
              "${{ vars.ECR_REPOSITORY_URL }}": {
                "username": "AWS",
                "password": "${{ steps.get_ecr_token.outputs.ecr_token }}"
              }
            }
...

Currently 2 out of 3 bundles are failing because a release with the same revision already exists. When only doing changes in the docker-compose.yml of one of the bundles only that bundle is build and this is successful.

In another CI with multiple bundles balena deploy is used and here the release-tag bundle argument is given like:

 --release-tag bundle ${{inputs.bundle}} \

This makes the release unique and will make building multiple bundles possible. But for the deploy-to-balena-action I cannot find this argument. Is this not support or am I missing something?