1- name : Build tsOS-vhf Images
1+ name : Build tsOS-vhf Image
22
33on :
44 push :
1010 runs-on : ubuntu-24.04-arm
1111 steps :
1212 - name : Create release
13- uses : softprops/action-gh-release@v1
13+ uses : softprops/action-gh-release@v2
1414 if : startsWith(github.ref, 'refs/tags/')
1515 with :
1616 prerelease : True
2121 needs : release
2222 steps :
2323 - name : Checkout repository
24- uses : actions/checkout@v1
24+ uses : actions/checkout@v6
2525 with :
2626 submodules : recursive
2727 token : ${{ secrets.TSDEPLOY_REPO_READ }}
@@ -31,39 +31,52 @@ jobs:
3131 with :
3232 pifile : tsOS-vhf.Pifile
3333
34+ - name : Remove pimod cache
35+ run : rm -rf .cache
36+
3437 - name : Package tsOS-vhf-arm64-${{github.ref_name}}.zip
3538 if : startsWith(github.ref, 'refs/tags/')
3639 run : |
3740 mv tsOS-vhf-arm64.img tsOS-vhf-arm64-${{github.ref_name}}.img
38- zip tsOS-vhf-arm64-${{github.ref_name}}.zip tsOS-vhf-arm64-${{github.ref_name}}.img
41+ zip -9 tsOS-vhf-arm64-${{github.ref_name}}.zip tsOS-vhf-arm64-${{github.ref_name}}.img
3942
4043 - name : Upload Release tsOS-vhf-arm64-${{github.ref_name}}.zip
4144 if : startsWith(github.ref, 'refs/tags/')
4245 env :
4346 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
44- run : gh release upload ${{github.ref_name}} tsOS-vhf-arm64-${{github.ref_name}}.zip
47+ run : |
48+ gh release upload ${{github.ref_name}} tsOS-vhf-arm64-${{github.ref_name}}.zip
49+ rm -f tsOS-vhf-arm64-${{github.ref_name}}.zip
4550
46- - name : Get latest stable release
51+ - name : Get latest release
4752 id : get_latest_release
4853 run : |
49- LATEST_RELEASE=$(gh release list --exclude-pre-releases --limit 1 --json tagName --jq '.[0].tagName' || echo "")
50- echo "latest_release=$LATEST_RELEASE" >> $GITHUB_OUTPUT
51- echo "Latest stable release: $LATEST_RELEASE"
54+ TAG=$(gh release list --limit 50 --json tagName,isPrerelease --jq 'first(.[] | select(.tagName != "${{ github.ref_name }}") | .tagName) // empty' || echo "")
55+ echo "latest_release=$TAG" >> $GITHUB_OUTPUT
56+ echo "Latest release (any; excluding current): ${TAG:-<none>}"
57+ env :
58+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
59+
60+ - name : Get latest stable release
61+ id : get_latest_stable_release
62+ run : |
63+ TAG=$(gh release list --limit 50 --json tagName,isPrerelease --jq 'first(.[] | select((.isPrerelease | not) and .tagName != "${{ github.ref_name }}") | .tagName) // empty' || echo "")
64+ echo "latest_stable_release=$TAG" >> $GITHUB_OUTPUT
65+ echo "Latest stable release (excluding current): ${TAG:-<none>}"
5266 env :
5367 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
5468
55- - name : Download previous release image
69+ - name : Fetch and unpack latest release base
5670 if : steps.get_latest_release.outputs.latest_release != ''
5771 run : |
58- PREVIOUS_TAG="${{ steps.get_latest_release.outputs.latest_release }}"
59- echo "Downloading tsOS-vhf-arm64-${PREVIOUS_TAG}.zip"
60- gh release download ${PREVIOUS_TAG} -p "tsOS-vhf-arm64-${PREVIOUS_TAG}.zip"
61- unzip "tsOS-vhf-arm64-${PREVIOUS_TAG}.zip"
62- echo "Downloaded and extracted: tsOS-vhf-arm64-${PREVIOUS_TAG}.img"
72+ BASE_TAG="${{ steps.get_latest_release.outputs.latest_release }}"
73+ gh release download ${BASE_TAG} -p "tsOS-vhf-arm64-${BASE_TAG}.zip"
74+ unzip "tsOS-vhf-arm64-${BASE_TAG}.zip"
75+ rm -f "tsOS-vhf-arm64-${BASE_TAG}.zip"
6376 env :
6477 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
6578
66- - name : Generate update file with pidiff
79+ - name : Generate update from latest release with pidiff
6780 if : steps.get_latest_release.outputs.latest_release != ''
6881 uses : Nature40/pimod/pidiff@master
6982 with :
@@ -74,11 +87,45 @@ jobs:
7487 tar : true
7588 rsync_options : --exclude-from=.pidiffignore
7689
77- - name : Upload update file to release
90+ - name : Upload update from latest release to release
7891 if : steps.get_latest_release.outputs.latest_release != '' && startsWith(github.ref, 'refs/tags/')
7992 env :
8093 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
8194 run : |
82- PREVIOUS_TAG="${{ steps.get_latest_release.outputs.latest_release }}"
95+ BASE_TAG="${{ steps.get_latest_release.outputs.latest_release }}"
96+ CURRENT_TAG="${{ github.ref_name }}"
97+ TAR="tsOS-vhf-arm64-update-${BASE_TAG}-to-${CURRENT_TAG}.tar"
98+ gh release upload ${CURRENT_TAG} "$TAR"
99+ rm -f "tsOS-vhf-arm64-${BASE_TAG}.img" "$TAR"
100+
101+ - name : Fetch and unpack latest stable release base
102+ if : steps.get_latest_stable_release.outputs.latest_stable_release != '' && steps.get_latest_stable_release.outputs.latest_stable_release != steps.get_latest_release.outputs.latest_release
103+ run : |
104+ BASE_TAG="${{ steps.get_latest_stable_release.outputs.latest_stable_release }}"
105+ gh release download ${BASE_TAG} -p "tsOS-vhf-arm64-${BASE_TAG}.zip"
106+ unzip "tsOS-vhf-arm64-${BASE_TAG}.zip"
107+ rm -f "tsOS-vhf-arm64-${BASE_TAG}.zip"
108+ env :
109+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
110+
111+ - name : Generate update from latest stable release with pidiff
112+ if : steps.get_latest_stable_release.outputs.latest_stable_release != '' && steps.get_latest_stable_release.outputs.latest_stable_release != steps.get_latest_release.outputs.latest_release
113+ uses : Nature40/pimod/pidiff@master
114+ with :
115+ base_image : tsOS-vhf-arm64-${{ steps.get_latest_stable_release.outputs.latest_stable_release }}.img
116+ updated_image : tsOS-vhf-arm64-${{ github.ref_name }}.img
117+ partition : 2
118+ output : tsOS-vhf-arm64-update-${{ steps.get_latest_stable_release.outputs.latest_stable_release }}-to-${{ github.ref_name }}
119+ tar : true
120+ rsync_options : --exclude-from=.pidiffignore
121+
122+ - name : Upload update from latest stable release to release
123+ if : steps.get_latest_stable_release.outputs.latest_stable_release != '' && steps.get_latest_stable_release.outputs.latest_stable_release != steps.get_latest_release.outputs.latest_release && startsWith(github.ref, 'refs/tags/')
124+ env :
125+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
126+ run : |
127+ BASE_TAG="${{ steps.get_latest_stable_release.outputs.latest_stable_release }}"
83128 CURRENT_TAG="${{ github.ref_name }}"
84- gh release upload ${CURRENT_TAG} "tsOS-vhf-arm64-update-${PREVIOUS_TAG}-to-${CURRENT_TAG}.tar"
129+ TAR="tsOS-vhf-arm64-update-${BASE_TAG}-to-${CURRENT_TAG}.tar"
130+ gh release upload ${CURRENT_TAG} "$TAR"
131+ rm -f "tsOS-vhf-arm64-${BASE_TAG}.img" "$TAR"
0 commit comments