Skip to content

Build n Release Synology Open Speedtest Package #11

Build n Release Synology Open Speedtest Package

Build n Release Synology Open Speedtest Package #11

name: Build n Release Synology Open Speedtest Package
on:
release:
types: [published]
workflow_dispatch:
jobs:
build-spk:
name: Build Package
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arch: ['kvmx64']
#dsm: ['7.0','7.1','7.2','7.3']
dsm: ['7.0']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get release tag
id: get_latest_tag
run: |
if [ "${{ github.event_name }}" = "release" ]; then
echo "new_tag=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT
else
# /releases/latest skips pre-releases, so fall back to /releases
# and take the first one (most recent by creation date)
latest_tag=$(curl -s https://api.github.com/repos/007revad/Synology_Open_Speedtest/releases/latest \
| jq -r '.tag_name // empty')
if [ -z "$latest_tag" ]; then
latest_tag=$(curl -s "https://api.github.com/repos/007revad/Synology_Open_Speedtest/releases?per_page=1" \
| jq -r '.[0].tag_name // empty')
fi
if [ -z "$latest_tag" ]; then
echo "ERROR: Could not determine release tag" >&2
exit 1
fi
echo "new_tag=$latest_tag" >> $GITHUB_OUTPUT
fi
- name: Determine DSM suffix
id: dsm_suffix
run: |
# Count how many DSM versions are in the matrix
dsm_list='${{ toJSON(matrix.dsm) }}'
count=$(echo "$dsm_list" | jq 'if type == "array" then length else 1 end')
current="${{ matrix.dsm }}"
if [ "$count" -eq 1 ] && [ "$current" = "7.0" ]; then
echo "suffix=DSM-7.x" >> $GITHUB_OUTPUT
else
echo "suffix=DSM-${current}" >> $GITHUB_OUTPUT
fi
- name: Synology Package Builder Github Action
uses: 007revad/synology-package-builder@main
with:
dsm: ${{ matrix.dsm }}
arch: ${{ matrix.arch }}
output: ./dist
- name: Remove debug spk and rename package
run: |
ls -l ./dist
rm ./dist/*_debug.spk
for f in ./dist/*.spk; do
mv "$f" "./dist/OpenSpeedtest-x86_64-${{ steps.get_latest_tag.outputs.new_tag }}-${{ steps.dsm_suffix.outputs.suffix }}.spk"
done
ls -l ./dist
- name: Create noarch package
run: |
for f in ./dist/OpenSpeedtest-x86_64-*.spk; do
noarch="${f/x86_64/noarch}"
tmpdir=$(mktemp -d)
tar -xf "$f" -C "$tmpdir"
sed -i 's/arch="x86_64"/arch="noarch"/' "$tmpdir/INFO"
tar -cf "$noarch" -C "$tmpdir" $(ls "$tmpdir")
rm -rf "$tmpdir"
done
ls -l ./dist
- name: Upload Package
uses: actions/upload-artifact@v4
with:
name: OpenSpeedtest-${{ steps.dsm_suffix.outputs.suffix }}
path: ./dist/*.spk
- name: Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.get_latest_tag.outputs.new_tag }}
make_latest: false
files: |
./dist/*.spk