144 lines
5.8 KiB
YAML
144 lines
5.8 KiB
YAML
name: generate-chart
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- "*"
|
|
|
|
env:
|
|
# renovate: datasource=docker depName=alpine/helm
|
|
HELM_VERSION: "3.17.3"
|
|
|
|
jobs:
|
|
generate-chart-publish:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Determine Architecture and Operating System to support x86_64 and ARM based CI nodes
|
|
run: |
|
|
# determine operating system
|
|
OS=$(uname | tr '[:upper:]' '[:lower:]')
|
|
echo "OS=${OS}" >> $GITHUB_ENV
|
|
echo "INFO: Set OS to '${OS}'"
|
|
|
|
# determine architecture
|
|
ARCH="$(uname -m)"
|
|
case "${ARCH}" in
|
|
aarch64) ARCH=arm64;;
|
|
x86_64) ARCH=amd64;;
|
|
esac
|
|
echo "ARCH=${ARCH}" >> $GITHUB_ENV
|
|
echo "INFO: Set ARCH to '${ARCH}'"
|
|
|
|
- name: Install packages via apt
|
|
run: |
|
|
apt update --yes
|
|
|
|
echo "INFO: Install packages via apt"
|
|
apt install --yes curl ca-certificates curl gnupg jq
|
|
|
|
- name: Install helm
|
|
run: |
|
|
curl --fail --location --output /dev/stdout --silent --show-error https://get.helm.sh/helm-v${{ env.HELM_VERSION }}-${OS}-${ARCH}.tar.gz | tar --extract --gzip --file /dev/stdin
|
|
mv ${OS}-${ARCH}/helm /usr/local/bin/
|
|
rm --force --recursive ${OS}-${ARCH} helm-v${{ env.HELM_VERSION }}-${OS}-${ARCH}.tar.gz
|
|
helm version
|
|
|
|
- name: Install yq
|
|
env:
|
|
YQ_VERSION: v4.45.4 # renovate: datasource=github-releases depName=mikefarah/yq
|
|
run: |
|
|
curl --fail --location --output /dev/stdout --silent --show-error https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_${OS}_${ARCH}.tar.gz | tar --extract --gzip --file /dev/stdin
|
|
mv yq_${OS}_${ARCH} /usr/local/bin
|
|
rm --force --recursive yq_${OS}_${ARCH} yq_${OS}_${ARCH}.tar.gz
|
|
yq --version
|
|
|
|
- name: Install docker-ce via apt
|
|
run: |
|
|
echo "INFO: Install docker"
|
|
install -m 0755 -d /etc/apt/keyrings
|
|
curl --fail --location --silent --show-error https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
|
chmod a+r /etc/apt/keyrings/docker.gpg
|
|
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
apt update --yes
|
|
apt install --yes python3 python3-pip apt-transport-https docker-ce-cli
|
|
|
|
- name: Install awscli
|
|
run: |
|
|
echo "INFO: Install awscli via python pip"
|
|
pip install awscli --break-system-packages
|
|
aws --version
|
|
|
|
# - name: Import GPG key
|
|
# id: import_gpg
|
|
# uses: https://github.com/crazy-max/ghaction-import-gpg@v6
|
|
# with:
|
|
# gpg_private_key: ${{ secrets.GPGSIGN_KEY }}
|
|
# passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }}
|
|
# fingerprint: CC64B1DB67ABBEECAB24B6455FC346329753F4B0
|
|
|
|
- name: Add Artifacthub.io annotations
|
|
run: |
|
|
NEW_TAG=12.3.0
|
|
OLD_TAG=12.0.0
|
|
# NEW_TAG="$(git tag --sort=-version:refname | head --lines 1)"
|
|
# OLD_TAG="$(git tag --sort=-version:refname | head --lines 2 | tail --lines 1)"
|
|
.gitea/scripts/add-annotations.sh "${OLD_TAG}" "${NEW_TAG}"
|
|
|
|
# # Using helm gpg plugin as 'helm package --sign' has issues with gpg2: https://github.com/helm/helm/issues/2843
|
|
# - name: package chart
|
|
# run: |
|
|
# echo ${{ secrets.DOCKER_CHARTS_PASSWORD }} | docker login -u ${{ secrets.DOCKER_CHARTS_USERNAME }} --password-stdin
|
|
# # FIXME: use upstream after https://github.com/technosophos/helm-gpg/issues/1 is solved
|
|
# helm plugin install https://github.com/pat-s/helm-gpg
|
|
# helm dependency build
|
|
# helm package --version "${GITHUB_REF#refs/tags/v}" ./
|
|
# mkdir gitea
|
|
# mv gitea*.tgz gitea/
|
|
# curl --fail --location --output gitea/index.yaml --silent --show-error https://dl.gitea.com/charts/index.yaml
|
|
# helm repo index gitea/ --url https://dl.gitea.com/charts --merge gitea/index.yaml
|
|
# # push to dockerhub
|
|
# echo ${{ secrets.DOCKER_CHARTS_PASSWORD }} | helm registry login -u ${{ secrets.DOCKER_CHARTS_USERNAME }} registry-1.docker.io --password-stdin
|
|
# helm push gitea/gitea-${GITHUB_REF#refs/tags/v}.tgz oci://registry-1.docker.io/giteacharts
|
|
# helm registry logout registry-1.docker.io
|
|
|
|
# - name: aws credential configure
|
|
# uses: https://github.com/aws-actions/configure-aws-credentials@v4
|
|
# with:
|
|
# aws-access-key-id: ${{ secrets.AWS_KEY_ID }}
|
|
# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
# aws-region: ${{ secrets.AWS_REGION }}
|
|
|
|
# - name: Copy files to S3 and clear cache
|
|
# run: |
|
|
# aws s3 sync gitea/ s3://${{ secrets.AWS_S3_BUCKET}}/charts/
|
|
|
|
# release-gitea:
|
|
# # needs: generate-chart-publish
|
|
# runs-on: ubuntu-latest
|
|
# container: docker.io/thegeeklab/git-sv:2.0.1
|
|
# steps:
|
|
# - name: install tools
|
|
# run: |
|
|
# apk add -q --update --no-cache nodejs
|
|
# - uses: actions/checkout@v4
|
|
# with:
|
|
# fetch-tags: true
|
|
# fetch-depth: 0
|
|
|
|
# - name: Create changelog
|
|
# run: |
|
|
# git sv current-version
|
|
# git sv release-notes -t ${GITHUB_REF#refs/tags/} -o CHANGELOG.md
|
|
# sed -i '1,2d' CHANGELOG.md # remove version
|
|
# cat CHANGELOG.md
|
|
|
|
# - name: Release
|
|
# uses: https://github.com/akkuman/gitea-release-action@v1
|
|
# with:
|
|
# body_path: CHANGELOG.md
|
|
# token: "${{ secrets.RELEASE_TOKEN }}"
|