Build n Release Synology Open Speedtest Package #11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |