WIP
All checks were successful
changelog / changelog (push) Successful in 20s
check-and-test / check-and-test (push) Successful in 1m46s

This commit is contained in:
2025-06-06 16:39:05 +02:00
parent 540350dbfa
commit ba6415b5b8

View File

@ -14,105 +14,121 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: install tools - name: Determine Architecture and Operating System
run: |
apt update -y
apt install -y curl ca-certificates curl gnupg
# helm
curl -O https://get.helm.sh/helm-v${{ env.HELM_VERSION }}-linux-amd64.tar.gz
tar -xzf helm-v${{ env.HELM_VERSION }}-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/
rm -rf linux-amd64 helm-v${{ env.HELM_VERSION }}-linux-amd64.tar.gz
helm version
# docker
install -m 0755 -d /etc/apt/keyrings
curl -fsSL 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 -y
apt install -y python3 python3-pip apt-transport-https docker-ce-cli
pip install awscli --break-system-packages
# jq
apt install -y jq
- 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
env:
YQ_VERSION: v4.45.4 # renovate: datasource=github-releases depName=mikefarah/yq
run: | run: |
# determine operating system # determine operating system
OS=$(uname | tr '[:upper:]' '[:lower:]') OS=$(uname | tr '[:upper:]' '[:lower:]')
echo "OS=${OS}" >> $GITHUB_ENV
echo "INFO: Set OS to '${OS}'"
# determine architecture # determine architecture
ARCH="$(uname -m)" ARCH="$(uname -m)"
case "${ARCH}" in case "${ARCH}" in
x86_64) ARCH=amd64;; x86_64) ARCH=amd64;;
esac esac
echo "ARCH=${ARCH}" >> $GITHUB_ENV
echo "INFO: Set ARCH to '${ARCH}'"
# Download yq
curl --silent --fail --location https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_${OS}_${ARCH}.tar.gz --output /dev/stdout | tar --extract --gzip && mv yq_${OS}_${ARCH} /usr/bin/yq
NEW_TAG="$(git tag --sort=-version:refname | head -n 1)" # - name: install tools
OLD_TAG="$(git tag --sort=-version:refname | head -n 2 | tail -n 1)" # run: |
.gitea/scripts/add-annotations.sh "${OLD_TAG}" "${NEW_TAG}" # apt update -y
# apt install -y curl ca-certificates curl gnupg
# # helm
# curl -O https://get.helm.sh/helm-v${{ env.HELM_VERSION }}-linux-amd64.tar.gz
# tar -xzf helm-v${{ env.HELM_VERSION }}-linux-amd64.tar.gz
# mv linux-amd64/helm /usr/local/bin/
# rm -rf linux-amd64 helm-v${{ env.HELM_VERSION }}-linux-amd64.tar.gz
# helm version
# # docker
# install -m 0755 -d /etc/apt/keyrings
# curl -fsSL 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 -y
# apt install -y python3 python3-pip apt-transport-https docker-ce-cli
# pip install awscli --break-system-packages
# # jq
# apt install -y jq
# Using helm gpg plugin as 'helm package --sign' has issues with gpg2: https://github.com/helm/helm/issues/2843 # - name: Import GPG key
- name: package chart # id: import_gpg
run: | # uses: https://github.com/crazy-max/ghaction-import-gpg@v6
echo ${{ secrets.DOCKER_CHARTS_PASSWORD }} | docker login -u ${{ secrets.DOCKER_CHARTS_USERNAME }} --password-stdin # with:
# FIXME: use upstream after https://github.com/technosophos/helm-gpg/issues/1 is solved # gpg_private_key: ${{ secrets.GPGSIGN_KEY }}
helm plugin install https://github.com/pat-s/helm-gpg # passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }}
helm dependency build # fingerprint: CC64B1DB67ABBEECAB24B6455FC346329753F4B0
helm package --version "${GITHUB_REF#refs/tags/v}" ./
mkdir gitea
mv gitea*.tgz gitea/
curl -s -L -o gitea/index.yaml 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 # - name: Add Artifacthub.io annotations
uses: https://github.com/aws-actions/configure-aws-credentials@v4 # env:
with: # YQ_VERSION: v4.45.4 # renovate: datasource=github-releases depName=mikefarah/yq
aws-access-key-id: ${{ secrets.AWS_KEY_ID }} # run: |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # # determine operating system
aws-region: ${{ secrets.AWS_REGION }} # OS=$(uname | tr '[:upper:]' '[:lower:]')
- name: Copy files to S3 and clear cache # # determine architecture
run: | # ARCH="$(uname -m)"
aws s3 sync gitea/ s3://${{ secrets.AWS_S3_BUCKET}}/charts/ # case "${ARCH}" in
# x86_64) ARCH=amd64;;
# esac
release-gitea: # # Download yq
# needs: generate-chart-publish # curl --silent --fail --location https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_${OS}_${ARCH}.tar.gz --output /dev/stdout | tar --extract --gzip && mv yq_${OS}_${ARCH} /usr/bin/yq
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 # NEW_TAG="$(git tag --sort=-version:refname | head -n 1)"
run: | # OLD_TAG="$(git tag --sort=-version:refname | head -n 2 | tail -n 1)"
git sv current-version # .gitea/scripts/add-annotations.sh "${OLD_TAG}" "${NEW_TAG}"
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 # # Using helm gpg plugin as 'helm package --sign' has issues with gpg2: https://github.com/helm/helm/issues/2843
uses: https://github.com/akkuman/gitea-release-action@v1 # - name: package chart
with: # run: |
body_path: CHANGELOG.md # echo ${{ secrets.DOCKER_CHARTS_PASSWORD }} | docker login -u ${{ secrets.DOCKER_CHARTS_USERNAME }} --password-stdin
token: "${{ secrets.RELEASE_TOKEN }}" # # 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 -s -L -o gitea/index.yaml 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 }}"