Compare commits
1 Commits
busybox-v1.37.0
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f91a2a68e |
@@ -0,0 +1,72 @@
|
|||||||
|
name: jq static musl build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- .gitea/workflows/jq.yml
|
||||||
|
- scripts/build_jq.sh
|
||||||
|
- scripts/publish_release.py
|
||||||
|
- versions/jq.version
|
||||||
|
- README.md
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-release:
|
||||||
|
runs-on: alpine-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Bootstrap workspace
|
||||||
|
shell: sh
|
||||||
|
env:
|
||||||
|
REPO_URL: ${{ gitea.server_url }}
|
||||||
|
REPO_NAME: ${{ gitea.repository }}
|
||||||
|
GIT_SHA: ${{ gitea.sha }}
|
||||||
|
run: |
|
||||||
|
apk add --no-cache git
|
||||||
|
workdir="$(pwd)"
|
||||||
|
tmpdir="$(mktemp -d)"
|
||||||
|
git clone --depth 1 "$REPO_URL/$REPO_NAME.git" "$tmpdir/repo"
|
||||||
|
git -C "$tmpdir/repo" fetch --depth 1 origin "$GIT_SHA"
|
||||||
|
git -C "$tmpdir/repo" checkout "$GIT_SHA"
|
||||||
|
find "$workdir" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
|
||||||
|
cp -a "$tmpdir/repo"/. "$workdir"/
|
||||||
|
|
||||||
|
- name: Read version
|
||||||
|
id: meta
|
||||||
|
shell: sh
|
||||||
|
working-directory: ${{ gitea.workspace }}
|
||||||
|
run: |
|
||||||
|
version="$(tr -d ' \n\r' < versions/jq.version)"
|
||||||
|
artifact="jq-${version}-linux-amd64-musl-static"
|
||||||
|
echo "version=${version}" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "artifact=${artifact}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Build static jq
|
||||||
|
shell: sh
|
||||||
|
working-directory: ${{ gitea.workspace }}
|
||||||
|
run: |
|
||||||
|
chmod +x scripts/build_jq.sh
|
||||||
|
./scripts/build_jq.sh "${{ steps.meta.outputs.version }}" "$PWD/dist"
|
||||||
|
|
||||||
|
- name: Publish release assets
|
||||||
|
shell: sh
|
||||||
|
env:
|
||||||
|
GITEA_TOKEN: ${{ gitea.token }}
|
||||||
|
GITEA_API_URL: ${{ gitea.api_url }}
|
||||||
|
REPO_OWNER: ${{ gitea.repository_owner }}
|
||||||
|
REPO_NAME: static-musl-builds
|
||||||
|
TOOL: jq
|
||||||
|
VERSION: ${{ steps.meta.outputs.version }}
|
||||||
|
TARGET_SHA: ${{ gitea.sha }}
|
||||||
|
working-directory: ${{ gitea.workspace }}
|
||||||
|
run: |
|
||||||
|
apk add --no-cache python3
|
||||||
|
python3 scripts/publish_release.py \
|
||||||
|
"dist/${{ steps.meta.outputs.artifact }}" \
|
||||||
|
"dist/${{ steps.meta.outputs.artifact }}.tar.gz" \
|
||||||
|
"dist/${{ steps.meta.outputs.artifact }}.sha256"
|
||||||
@@ -8,6 +8,7 @@ Automated static `musl` builds for portable Linux binaries.
|
|||||||
- `speedtest-go`
|
- `speedtest-go`
|
||||||
- `doggo`
|
- `doggo`
|
||||||
- `busybox`
|
- `busybox`
|
||||||
|
- `jq`
|
||||||
|
|
||||||
Each release publishes:
|
Each release publishes:
|
||||||
- the raw binary
|
- the raw binary
|
||||||
|
|||||||
Executable
+49
@@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
VERSION="${1:?usage: build_jq.sh <version> [output_dir]}"
|
||||||
|
OUTPUT_DIR="${2:-$PWD/dist}"
|
||||||
|
VERSION="${VERSION#v}"
|
||||||
|
PREFIX_NAME="jq-${VERSION}-linux-amd64-musl-static"
|
||||||
|
|
||||||
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
apk add --no-cache \
|
||||||
|
build-base \
|
||||||
|
curl \
|
||||||
|
file \
|
||||||
|
tar \
|
||||||
|
xz
|
||||||
|
|
||||||
|
SRCDIR="${TMPDIR:-/tmp}/jq-src-${VERSION}"
|
||||||
|
rm -rf "$SRCDIR"
|
||||||
|
mkdir -p "$SRCDIR"
|
||||||
|
|
||||||
|
curl -fsSL "https://github.com/jqlang/jq/releases/download/jq-${VERSION}/jq-${VERSION}.tar.gz" \
|
||||||
|
| tar -xz -C "$SRCDIR" --strip-components=1
|
||||||
|
|
||||||
|
cd "$SRCDIR"
|
||||||
|
./configure \
|
||||||
|
--disable-docs \
|
||||||
|
--with-oniguruma=builtin \
|
||||||
|
--enable-all-static \
|
||||||
|
CFLAGS='-O2 -pipe'
|
||||||
|
make -j"$(getconf _NPROCESSORS_ONLN 2>/dev/null || echo 2)"
|
||||||
|
cp jq "$OUTPUT_DIR/$PREFIX_NAME"
|
||||||
|
strip "$OUTPUT_DIR/$PREFIX_NAME" 2>/dev/null || true
|
||||||
|
|
||||||
|
(
|
||||||
|
cd "$OUTPUT_DIR"
|
||||||
|
tar -czf "${PREFIX_NAME}.tar.gz" "$PREFIX_NAME"
|
||||||
|
sha256sum "$PREFIX_NAME" "${PREFIX_NAME}.tar.gz" > "${PREFIX_NAME}.sha256"
|
||||||
|
)
|
||||||
|
|
||||||
|
file "$OUTPUT_DIR/$PREFIX_NAME"
|
||||||
|
ldd "$OUTPUT_DIR/$PREFIX_NAME" || true
|
||||||
|
|
||||||
|
if file "$OUTPUT_DIR/$PREFIX_NAME" | grep -qi 'dynamically linked'; then
|
||||||
|
echo "error: output binary is still dynamically linked" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "build OK: $OUTPUT_DIR/$PREFIX_NAME"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
1.8.1
|
||||||
Reference in New Issue
Block a user