85 lines
2.9 KiB
YAML
85 lines
2.9 KiB
YAML
name: Build Chrony from Mirror
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: 'The "v" tag to build (e.g., v4.7)'
|
|
required: true
|
|
type: string
|
|
|
|
jobs:
|
|
build-and-upload-deb:
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Get Build Version
|
|
run: |
|
|
if [[ "${{ gitea.event_name }}" == "push" ]]; then
|
|
TRIGGER_TAG="${{ gitea.ref_name }}"
|
|
echo "Triggered by tag push: $TRIGGER_TAG"
|
|
elif [[ "${{ gitea.event_name }}" == "workflow_dispatch" ]]; then
|
|
TRIGGER_TAG="${{ inputs.tag }}"
|
|
echo "Triggered by manual dispatch: $TRIGGER_TAG"
|
|
fi
|
|
if [ -z "$TRIGGER_TAG" ]; then
|
|
echo "Error: Could not determine tag name."
|
|
exit 1
|
|
fi
|
|
|
|
# The upstream chrony mirror uses "4.7", but our builder repo uses "v4.7".
|
|
# We strip the "v" to get the tag name for the mirror.
|
|
UPSTREAM_TAG=$(echo $TRIGGER_TAG | sed 's/^v//')
|
|
echo "Builder Tag: $TRIGGER_TAG"
|
|
echo "Upstream Tag: $UPSTREAM_TAG"
|
|
|
|
echo "TRIGGER_TAG=${TRIGGER_TAG}" >> $GITEA_ENV
|
|
echo "UPSTREAM_TAG=${UPSTREAM_TAG}" >> $GITEA_ENV
|
|
|
|
- name: Clone Chrony Source Code
|
|
run: |
|
|
git clone https://git.dws.rip/dws/chrony.git
|
|
cd chrony
|
|
echo "Checking out upstream tag: ${{ env.UPSTREAM_TAG }}"
|
|
git checkout ${{ env.UPSTREAM_TAG }}
|
|
- name: Install Build Dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
cd chrony
|
|
sudo apt-get install -y dpkg-dev debhelper devscripts build-essential
|
|
sudo apt-get build-dep -y .
|
|
|
|
- name: Import GPG Key
|
|
uses: https://github.com/crazy-max/ghaction-import-gpg@v6
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
git_user_signingkey: true
|
|
git_committer_name: "DWS Packages"
|
|
git_committer_email: "packages@dws.rip"
|
|
|
|
- name: Build the SIGNED .deb Package
|
|
run: |
|
|
cd chrony
|
|
dpkg-buildpackage --unsigned-source -b
|
|
- name: Upload to Gitea Debian Registry
|
|
run: |
|
|
# --- Set your Gitea variables ---
|
|
OWNER=dws
|
|
DEBIAN_DIST=noble
|
|
DEBIAN_COMP=main
|
|
# Find the .changes file (it's in the parent dir of chrony-mirror)
|
|
CHANGES_FILE=$(find . -maxdepth 1 -name "*.changes" | head -n 1)
|
|
if [ -z "$CHANGES_FILE" ]; then
|
|
echo "Error: No .changes file found. Build may have failed."
|
|
exit 1
|
|
fi
|
|
echo "Uploading $CHANGES_FILE..."
|
|
curl -L --fail \
|
|
-X POST "https://git.dws.rip/api/packages/${OWNER}/debian/upload/${DEBIAN_DIST}/${DEBIAN_COMP}" \
|
|
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
|
|
-F "file=@${CHANGES_FILE}"
|