Comments (8)
It makes no sense to me that this chart releaser action would want to set a tag. CI+CD pipelines are DOWNSTREAM from Git actions such as the setting of a tag.
It also makes no sense to me that the examples for using this pipeline all show that it runs on merges to master. One of the largest value props of Git is that everything can be previewed and verified and peer reviewed in a merge request, and then all the gory details can be squash-committed before any merge to master. And so I've grown accustomed to setting tags on commits in a feature branch (eg 1.2.1-rc1
), so that the merge request can show the CI+CD results.
from chart-releaser-action.
Why do you create the tag in the first place? chart-releaser does that for you.
from chart-releaser-action.
Just to add to discussion: ability to force re-publish would be great in case something goes wrong and the artifacts / metadata need fixing.
from chart-releaser-action.
We would like to use the Github UI to create a release with version information and the likes. This is the trigger for a release pipeline which includes building the chart and publishing it. The Create Release UI does create a tag automatically, so it's redundant for the chart releaser to do that as well.
Since this post we've manually created a script step that builds the helm chart and pushes it to our GH hosting. If you are curious, you can find it here:
https://github.com/orbit/orbit/blob/master/.github/workflows/release_orbit.yml
from chart-releaser-action.
@brettmorien @drauschenbach I ended up just using chart-releaser directly in the github workflow. I also needed to publish chart on every tag. This is my setup:
- name: Package and upload helm chart
run: |
# donwload helm chart releaser
curl -sSLo cr.tar.gz "https://github.com/helm/chart-releaser/releases/download/v1.2.1/chart-releaser_1.2.1_linux_amd64.tar.gz"
tar -xzf cr.tar.gz
rm -f cr.tar.gz
owner=$(cut -d '/' -f 1 <<< "$GITHUB_REPOSITORY")
repo=$(cut -d '/' -f 2 <<< "$GITHUB_REPOSITORY")
# package chart
./cr package charts/$repo
# upload chart to github relases
./cr upload \
--owner "$owner" \
--git-repo "$repo" \
--token "${{ secrets.GITHUB_TOKEN }}" \
--release-name-template "{{ .Version }}"
# update index and push to github pages
git config user.email "[email protected]"
git config user.name "$owner"
./cr index \
--owner "$owner" \
--git-repo "$repo" \
--token "${{ secrets.GITHUB_TOKEN }}" \
--release-name-template "{{ .Version }}" \
--index-path ./index.yaml \
--charts-repo https://$owner.github.io/$repo \
--push
from chart-releaser-action.
Another use case is relasing from remote repository:
This will not work:
jobs:
repo-sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
repository: 'opendistro-for-elasticsearch/opendistro-build'
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Install Helm
uses: azure/setup-helm@v1
with:
version: v3.4.0
- name: Run chart-releaser
uses: helm/[email protected]
with:
charts_dir: helm/
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
from chart-releaser-action.
I guess the concept of this action is for dedicated git project for storing helm charts and this shouldn't be used to mix charts with application. Therefore, the design decision kind of make sense if you think it that way
from chart-releaser-action.
Hi all,
I also see a need to have a possibility to enforce when to do always publish e..g if the version contains SNAPSHOT (that is the idea why we have SNAPSHOT in the first place so that the current version can be always tested e2e before a proper release). Let us take maven-deploy plugin: https://maven.apache.org/plugins/maven-deploy-plugin/usage.html as an example.
I did try somehow to simulate it (but a bit hacky and I do not like it a lot) by providing a filter mechanism that checks if the version contains SNAPSHOT to delete that specific tag/release and redeploy (release it). The challenge was to delete/remove the chart from the gh-pages (there may be a solution, but I didn't like the approach -- to hacky).
So, I would like to have something:
- check on specific fields e.g. version contains('SNAPSHOT) --> do (re-deploy) and also restrict it to be triggered only on SNAPSHOT.
Best regards,
from chart-releaser-action.
Related Issues (20)
- cr index does not remove old releases that no longer exist. HOT 1
- Add flag package-with-index HOT 4
- Support actions triggered by a tag not working HOT 3
- README example uses v1.6.0 but that doesn't exist HOT 3
- How to use this action with Googl's "release-please" HOT 1
- Skip_existing not seen as a valid input HOT 2
- Error creating Github release 404 Not Found HOT 1
- Question: Only create helm chart and publish it without creating a release? HOT 2
- Unexpected input(s) 'packages_with_index', HOT 1
- cr.sh: line 109: latest_tag: unbound variable HOT 8
- Are generated Helm Charts possible?
- Nothing to do. No chart changes detected.
- GitHub Actions Failure: Helm Chart Release Process Encounters Non-Fast-Forward Push Error and cr upload Exit Status 1 HOT 3
- Is there any way to customize pages-index-path and index-path? HOT 2
- Request for new release with the changes in #143 HOT 1
- Worflow is not triggered by new tag
- skip_upload flag is not in the latest release HOT 1
- Release created, index.yaml not updated.
- Allow releasing to a different repository
- Multiple helm charts are not supported HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chart-releaser-action.