Extracted to build-tools
This commit is contained in:
parent
bd22a72e63
commit
e2144b2be4
23
.drone.yml
23
.drone.yml
@ -10,21 +10,14 @@ steps:
|
||||
- name: step1
|
||||
image: alpine
|
||||
commands:
|
||||
- apk add perl git
|
||||
- git show --name-only --pretty="format:" | grep '^charts'
|
||||
- git show --name-only --pretty="format:" | grep '^charts' | perl -pe 's:^([^/]*?/[^/]*?)/.*:$1:'
|
||||
- git show --name-only --pretty="format:" | grep '^charts' | perl -pe 's:^([^/]*?/[^/]*?)/.*:$1:' | sort | uniq
|
||||
- var1=$(git show --name-only --pretty="format:")
|
||||
- echo "$var1"
|
||||
# - var2=$(git show --name-only --pretty="format:" | grep '^charts')
|
||||
# - echo "$var2"
|
||||
- var3=$(git show --name-only --pretty="format:" | grep '^charts' | perl -pe 's:^([^/]*?/[^/]*?)/.*:$1:')
|
||||
- echo "$var3"
|
||||
# - var4=$(git show --name-only --pretty="format:" | grep '^charts' | perl -pe 's:^([^/]*?/[^/]*?)/.*:$1:' | sort)
|
||||
# - echo "$var4"
|
||||
- changed_charts=$(git show --name-only --pretty="format:" | grep '^charts' | perl -pe 's:^([^/]*?/[^/]*?)/.*:$1:' | sort | uniq)
|
||||
- echo "$changed_charts"
|
||||
- echo "This is after"
|
||||
- ls
|
||||
- find build-tools
|
||||
- find charts
|
||||
- echo $SHELL
|
||||
- ./build-tools/upload-new-versions.sh
|
||||
environment:
|
||||
GITEA_PASSWORD:
|
||||
from_secret: gitea_password
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
|
@ -15,6 +15,11 @@ $ curl --user <username>:<password> -X POST --upload-file ./<package>.tgz https:
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
$ helm repo add --username <username> --password <password> <repo-alias> https://hostname.of.gitea/api/packages/scubbo/helm
|
||||
$ helm repo add --username <username> --password <password> <repo-alias> https://hostname.of.gitea/api/packages/<user>/helm
|
||||
$ helm install <release-name> <repo-alias>/<name>
|
||||
```
|
||||
|
||||
## Other links
|
||||
|
||||
* [General documentation on repositories](https://helm.sh/docs/topics/chart_repository/)
|
||||
* [Gitea's own documentation](https://docs.gitea.com/next/usage/packages/helm)
|
36
build-tools/upload-new-versions.sh
Executable file
36
build-tools/upload-new-versions.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -x
|
||||
|
||||
apk add git curl jq helm;
|
||||
# Intentionally does not handle renames, which would begin with `R`.
|
||||
changed_charts=$(git show --name-status --pretty="format:" | grep '^[MA]' | cut -f 2- | grep '^charts' | cut -d '/' -f 1,2 | sort | uniq);
|
||||
echo "$changed_charts";
|
||||
current_versions=$(curl -s --user scubbo:$GITEA_PASSWORD https://gitea.scubbo.org/api/v1/packages/scubbo | jq -r '.[] | select(.type == "helm") | .name + "___" + .version');
|
||||
echo "$current_versions";
|
||||
|
||||
mkdir bundles;
|
||||
for changed_chart in $changed_charts
|
||||
do
|
||||
echo "Operating on $changed_chart";
|
||||
# e.g. /Users/scubbo/Code/helm-charts/hello-world-0.1.1.tgz
|
||||
output_location=$(helm package $changed_chart | rev | cut -d ' ' -f 1 | rev);
|
||||
# e.g. hello-world-0.1.1
|
||||
file_metadata=$(echo $output_location | rev | cut -d '/' -f 1 | cut -c 5- | rev);
|
||||
chart_name=$(echo $file_metadata | rev | cut -d '-' -f 2- | rev);
|
||||
chart_version=$(echo $file_metadata | rev | cut -d '-' -f 1 | rev);
|
||||
if [[ $(echo $current_versions | grep "$chart_name___$chart_version" | wc -l ) -eq 1 ]]; then
|
||||
# I.e. if the current version in the repo is the same as what we're trying to push
|
||||
# TODO - should we check that we're pushing a _newer_ version?
|
||||
# TODO - does the API only show the current version, or all versions?
|
||||
echo "Version clash ($chart_version) for $chart_name";
|
||||
exit 1;
|
||||
else
|
||||
# Move to a directory so we can upload later. Do this after checking all packages so there's no partial update
|
||||
mv $output_location bundles/;
|
||||
fi
|
||||
done
|
||||
|
||||
# All packages have been checked, no version conflicts - upload them all!
|
||||
find bundles -type f -exec curl -s --user "scubbo:$GITEA_PASSWORD" -X POST --upload-file '{}' https://gitea.scubbo.org/api/packages/scubbo/helm/api/charts \;
|
||||
rm -rf bundles;
|
1
charts/hello-world/i-am-a-new-file
Normal file
1
charts/hello-world/i-am-a-new-file
Normal file
@ -0,0 +1 @@
|
||||
I have content!
|
Loading…
x
Reference in New Issue
Block a user