feature test
Some checks failed
Build packages / discover (push) Failing after 20s
Build packages / build (push) Has been skipped

This commit is contained in:
paltovkone
2026-03-07 18:36:37 +04:00
parent e922074ba0
commit 2645df7e60

View File

@ -20,24 +20,37 @@ jobs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Build matrix
id: set-matrix
run: |
if [ -n "${{ github.event.inputs.package }}" ]; then
# Ручной запуск — конкретный пакет
MATRIX=$(echo '["${{ github.event.inputs.package }}"]')
MATRIX="[\"${{ github.event.inputs.package }}\"]"
else
# Авто — только изменённые пакеты
CHANGED=$(git diff --name-only HEAD~1 HEAD | grep -oP '^[^/]+(?=/)' | sort -u | \
while read dir; do [ -f "$dir/nfpm.yaml" ] && echo "$dir"; done)
MATRIX=$(echo "$CHANGED" | jq -R . | jq -sc .)
if git rev-parse HEAD~1 >/dev/null 2>&1; then
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD)
else
CHANGED_FILES=$(git diff-tree --no-commit-id -r --name-only HEAD)
fi
CHANGED=$(echo "$CHANGED_FILES" \
| grep -oP '^[^/]+(?=/)' \
| sort -u \
| while read dir; do
[ -f "$dir/nfpm.yaml" ] && echo "$dir"
done)
MATRIX=$(echo "$CHANGED" | grep -v '^$' | jq -R . | jq -sc .)
fi
echo "matrix=$MATRIX" >> $GITHUB_OUTPUT
echo "Detected packages: $MATRIX"
build:
needs: discover
if: ${{ needs.discover.outputs.matrix != '[]' }}
if: ${{ needs.discover.outputs.matrix != '[]' && needs.discover.outputs.matrix != '' }}
runs-on: ubuntu-latest
strategy:
matrix:
@ -51,29 +64,36 @@ jobs:
run: |
VERSION=$(cat ${{ matrix.package }}/VERSION | tr -d '[:space:]')
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "Building ${{ matrix.package }} v$VERSION"
- name: Download upstream
run: |
cd ${{ matrix.package }}
bash scripts/download.sh $VERSION # ← каждый пакет знает как скачать себя
bash scripts/download.sh "$VERSION"
- name: Build deb
run: |
docker run --rm \
-v $PWD/${{ matrix.package }}:/work \
-v "$PWD/${{ matrix.package }}:/work" \
-w /work \
-e VERSION=${{ env.VERSION }} \
-e VERSION="${{ env.VERSION }}" \
goreleaser/nfpm package \
--config nfpm.yaml \
--target /work \
--packager deb
- name: Publish
- name: Publish to Gitea
run: |
DEB=$(ls ${{ matrix.package }}/*.deb | head -1)
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \
echo "Publishing: $DEB"
HTTP_CODE=$(curl -s -o /tmp/upload_response.txt -w "%{http_code}" \
--user "andrew:${{ secrets.GITEA_TOKEN }}" \
--upload-file "$DEB" \
"https://git.nakolenke.org/api/packages/nakolenke-pub/debian/pool/trixie/main/upload")
cat /tmp/upload_response.txt
echo "HTTP: $HTTP_CODE"
[ "$HTTP_CODE" = "201" ] || exit 1
if [ "$HTTP_CODE" != "201" ]; then
echo "Failed to publish"
exit 1
fi
echo "Successfully published $DEB"