Skip to content

Commit fd90b85

Browse files
committed
update github build file pre-release builds
1 parent c53509f commit fd90b85

1 file changed

Lines changed: 66 additions & 19 deletions

File tree

.github/workflows/build.yml

Lines changed: 66 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build tsOS-vhf Images
1+
name: Build tsOS-vhf Image
22

33
on:
44
push:
@@ -10,7 +10,7 @@ jobs:
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
@@ -21,7 +21,7 @@ jobs:
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

Comments
 (0)