File tree Expand file tree Collapse file tree 4 files changed +84
-5
lines changed Expand file tree Collapse file tree 4 files changed +84
-5
lines changed Original file line number Diff line number Diff line change 1010 workflow_call :
1111 inputs :
1212 deb-file-name :
13- required : true
13+ required : false
14+ type : string
15+ deb-url :
16+ description : ' URL for Kolibri deb file'
17+ required : false
1418 type : string
1519 ref :
1620 description : ' A ref for this workflow to check out its own repo'
17- required : true
21+ required : false
1822 type : string
1923 outputs :
2024 zip-file-name :
2832 outputs :
2933 zip-file-name : ${{ steps.get-zip-filename.outputs.zip-file-name }}
3034 steps :
35+ - name : Validate deb reference inputs
36+ if : ${{ (inputs.deb-file-name && inputs.deb-url) || (!inputs.deb-file-name && !inputs.deb-url) }}
37+ run : |
38+ echo "Must specify only one reference for the deb file to build the image with."
39+ exit 1
3140 - uses : actions/checkout@v4
3241 if : ${{ !inputs.ref }}
3342 - uses : actions/checkout@v4
3645 repository : learningequality/pi-gen
3746 ref : ${{ inputs.ref }}
3847 - name : Download the debfile from URL and install
39- if : ${{ github.event. inputs.deb-url }}
40- run : make get-deb deb=${{ github.event. inputs.deb-url }}
48+ if : ${{ inputs.deb-url }}
49+ run : make get-deb deb=${{ inputs.deb-url }}
4150 - name : Download the debfile from artifacts
4251 if : ${{ inputs.deb-file-name }}
4352 uses : actions/download-artifact@v4
4655 path : dist
4756 - name : Build the pi image
4857 run : ./build-docker.sh
58+ - name : Rename the pi image and zip file
59+ run : make rename-zip
4960 - name : Get ZIP filename
5061 id : get-zip-filename
5162 run : echo "::set-output name=zip-file-name::$(ls deploy | grep .zip | cat)"
Original file line number Diff line number Diff line change 1+ name : Build Pi image for PRs
2+
3+ on :
4+ pull_request :
5+ branches :
6+ - master
7+
8+ jobs :
9+ pre_job :
10+ name : Path match check
11+ runs-on : ubuntu-latest
12+ # Map a step output to a job output
13+ outputs :
14+ should_skip : ${{ steps.skip_check.outputs.should_skip }}
15+ steps :
16+ - id : skip_check
17+ uses : fkirc/skip-duplicate-actions@master
18+ with :
19+ github_token : ${{ github.token }}
20+ paths_ignore : ' ["**.po", "**.json"]'
21+ latest_kolibri_release :
22+ needs : pre_job
23+ if : ${{ needs.pre_job.outputs.should_skip != 'true' }}
24+ runs-on : ubuntu-latest
25+ outputs :
26+ deb-url : ${{ steps.get_latest_kolibri_release.outputs.result }}
27+ steps :
28+ - name : Get latest Kolibri release
29+ id : get_latest_kolibri_release
30+ uses : actions/github-script@v7
31+ with :
32+ result-encoding : string
33+ script : |
34+
35+ const { data: releases } = await github.rest.repos.listReleases({
36+ owner: 'learningequality',
37+ repo: 'kolibri',
38+ per_page: 1,
39+ page: 1,
40+ });
41+
42+ const latestRelease = releases[0];
43+ const debAsset = latestRelease.assets.find(asset => asset.name.endsWith('.deb'));
44+ const debUrl = debAsset.browser_download_url;
45+ return debUrl;
46+
47+ build_zip :
48+ name : Build Image
49+ needs : [pre_job, latest_kolibri_release]
50+ if : ${{ needs.pre_job.outputs.should_skip != 'true' }}
51+ uses : ./.github/workflows/build_zip.yml
52+ with :
53+ deb-url : ${{ needs.latest_kolibri_release.outputs.deb-url }}
Original file line number Diff line number Diff line change 11deploy /*
22work /*
3+ dist /*
34postrun.sh
45.pc
56* -pc
Original file line number Diff line number Diff line change 1- .PHONY : get-deb clean-deb
1+ .PHONY : get-deb clean-deb rename-zip
22
33DIST_DIR := dist
44
@@ -21,3 +21,17 @@ get-deb: clean-deb
2121 unzip -d $(DIST_DIR)/ $(DIST_DIR)/$(DLFILE); \
2222 rm $(DIST_DIR)/$(DLFILE); \
2323 fi
24+
25+ rename-zip :
26+ # Unzip the file so we can rename the image file
27+ unzip -o deploy/image_Kolibri-lite.zip -d deploy
28+ # Clean up the original zip file
29+ rm deploy/image_Kolibri-lite.zip
30+ # Get the version based on the debian file name kolibri_<version>-0ubuntu1_all.deb
31+ $(eval VERSION=$(shell ls ${DIST_DIR} | grep kolibri | sed 's/kolibri_\(.*\)-0ubuntu1_all.deb/\1/'))
32+ # Rename the image file to include the version
33+ mv deploy/Kolibri-lite.img deploy/kolibri-pi-image-$(VERSION).img
34+ # Zip the image file back up
35+ zip -j deploy/kolibri-pi-image-$(VERSION).zip deploy/kolibri-pi-image-$(VERSION).img
36+ # Clean up the extracted image file
37+ rm deploy/kolibri-pi-image-$(VERSION).img
You can’t perform that action at this time.
0 commit comments