Skip to content

Commit 736fd0c

Browse files
v4.x (#41)
* Initial support for >=3.6 firmwares, toolchain v4.x This updates all libraries in toolchain/base images according to 3.6.0.1865 firmware. Includes patches for glibc 2.35 (to be upstreamed) and for breakpad. Updated crosstool-ng to latest master and regerated crosstool.config using it. * feat: library versions targeting firmware 3.18 * feat/toolchain: initial aarch64 support * feat/base: initial aarch64 support * temp: testing build * fix/toolchain: allow aarch64 build as root * fix/toolchain: some ct-ng build things * fix/base: no --break-system-packages * [no stage1] feat/workflow: option to skip stages * [no stage1] fix/workflow: typo * [no stage1] fix/workflow: run stages even if previous one was skipped * feat: build with all cores available * feat/base: upgrade to Debian 12 * feat/base: upgrade to GCC 12 * feat/base: upgrade to Debian 12, part 2 * fix/base: fix env * fix/base: actually fix build * feat/dotnet6: Upgrade for Debian 12 * feat/go: upgrade to 1.24.2 * feat/rust: aarch64 and version upgrade * fix/rust: fix build * fix/script/build: go back to toltec-dev again * feat/qt: switch to Qt6 (no libqsgepaper for now) * fix/qt: do not use remarkable modules and switch for qt6 * fix/qt: build thrice * fix/qt: building now works * fix/script/build: go back to toltec-dev again * fix/ci/pr: pass containers between jobs * fix/ci/pr: fix install * fix/ci/pr: fix install part 2 * fix/ci/pr: fix uuid gen * fix/toolchain: disable ct-ng progress spam * fix/ci/pr: fix UUID passing * fix/ci/pr: remove UUID * Revert "fix/ci/pr: remove UUID" This reverts commit 36486b8. * fix/ci/pr: remove unnecessary packages * fix/sscript/build: save build to local image * fix/ci/pr: leave the package install * fix/ci/pr: use local cache * fix/ci/pr: use local cache, take 2 * fix: final build fix * fix/toolchain: disable ct-ng updatetools due to GNU Savannah stability issue * fix/toolchain: rMPP GCC 11 * fix/toolchain: GCC 11 for rM2 too * feat/base: add libdrm for aarch64 * feat/toolchain: change to gcc 11 * feat/qt: add libqsgepaper.so * fix: fix tab to double space * misc/qt: rename qsgepaper to qsgepaper-rmpp * fix/qt: make curl follow redirect * fix/qt: fixed filename * feat/ci: set retention to 1d * feat: final touches * fix/rust: typo Co-authored-by: Nathaniel van Diepen <Eeems@users.noreply.github.com> * fix/toolchain: fix unintended version regression * misc/qt: remove libqsgepaper from toolchain * Add export and upload steps to stage3 * Update dependencies and artifact naming in workflow --------- Co-authored-by: Nathaniel van Diepen <Eeems@users.noreply.github.com>
1 parent 4b5a6c6 commit 736fd0c

19 files changed

Lines changed: 733 additions & 241 deletions

File tree

.github/workflows/build.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
jobs:
1010
stage1:
1111
name: Stage 1
12+
if: ${{ !contains(github.event.head_commit.message, '[no stage1]') }}
1213
runs-on: ubuntu-latest
1314
steps:
1415
- name: Checkout the Git repository
@@ -25,6 +26,7 @@ jobs:
2526
run: ./scripts/build -p -g -s toolchain
2627
stage2:
2728
name: Stage 2
29+
if: ${{ !contains(github.event.head_commit.message, '[no stage2]') && !failure() && !cancelled() }}
2830
runs-on: ubuntu-latest
2931
needs: stage1
3032
steps:
@@ -42,6 +44,7 @@ jobs:
4244
run: ./scripts/build -p -g -s base
4345
stage3:
4446
name: Stage 3
47+
if: ${{ !contains(github.event.head_commit.message, '[no stage3]') && !failure() && !cancelled() }}
4548
runs-on: ubuntu-latest
4649
needs: stage2
4750
strategy:

.github/workflows/pr.yml

Lines changed: 66 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ jobs:
1010
stage1:
1111
name: Stage 1
1212
runs-on: ubuntu-latest
13+
outputs:
14+
UUID: ${{ steps.export_container_uuid.outputs.UUID }}
1315
steps:
1416
- name: Checkout the Git repository
1517
uses: actions/checkout@v3
@@ -23,11 +25,34 @@ jobs:
2325
uses: docker/setup-buildx-action@v3
2426
- name: Build and push toolchain
2527
run: ./scripts/build -g -s toolchain
28+
- name: Export the container
29+
id: export_container_uuid
30+
run: |
31+
export DEBIAN_FRONTEND=noninteractive
32+
sudo apt-get update -y
33+
sudo apt-get install uuid-runtime
34+
export UUID=$(uuidgen)
35+
echo "UUID=$UUID" >> "$GITHUB_ENV"
36+
echo "UUID=$UUID" >> "$GITHUB_OUTPUT"
37+
docker image save ghcr.io/toltec-dev/toolchain | gzip > ${{ runner.temp }}/$UUID-toolchain.tar.gz
38+
- name: Upload artifact
39+
uses: actions/upload-artifact@v4
40+
with:
41+
name: ${{ env.UUID }}-toolchain
42+
path: ${{ runner.temp }}/${{ env.UUID }}-toolchain.tar.gz
43+
retention-days: 1
2644
stage2:
2745
name: Stage 2
2846
runs-on: ubuntu-latest
47+
outputs:
48+
UUID: ${{ steps.export_uuid_for_stage3.outputs.UUID }}
2949
needs: stage1
3050
steps:
51+
- name: Download artifact
52+
uses: actions/download-artifact@v4
53+
with:
54+
name: ${{ needs.stage1.outputs.UUID }}-toolchain
55+
path: ${{ runner.temp }}
3156
- name: Checkout the Git repository
3257
uses: actions/checkout@v3
3358
- name: Login to GitHub Container Registry
@@ -38,16 +63,40 @@ jobs:
3863
password: ${{ secrets.GITHUB_TOKEN }}
3964
- name: Set up Docker Buildx
4065
uses: docker/setup-buildx-action@v3
66+
- name: Set UUID for stage3
67+
id: export_uuid_for_stage3
68+
run: echo "UUID=${{ needs.stage1.outputs.UUID }}" >> "$GITHUB_OUTPUT"
69+
- name: Import container
70+
run: |
71+
pushd ${{ runner.temp }}
72+
tar xf ${{ needs.stage1.outputs.UUID }}-toolchain.tar.gz
73+
popd
74+
rm ${{ runner.temp }}/${{ needs.stage1.outputs.UUID }}-toolchain.tar.gz
4175
- name: Build and push toolchain
42-
run: ./scripts/build -g -s base
76+
run: ./scripts/build -g -s base -c ghcr.io/toltec-dev/toolchain=oci-layout://${{ runner.temp }}
77+
- name: Export the container
78+
run: docker image save ghcr.io/toltec-dev/base | gzip > ${{ runner.temp }}/${{ needs.stage1.outputs.UUID }}-base.tar.gz
79+
- name: Upload artifact
80+
uses: actions/upload-artifact@v4
81+
with:
82+
name: ${{ needs.stage1.outputs.UUID }}-base
83+
path: ${{ runner.temp }}/${{ needs.stage1.outputs.UUID }}-base.tar.gz
84+
retention-days: 1
4385
stage3:
4486
name: Stage 3
4587
runs-on: ubuntu-latest
46-
needs: stage2
88+
needs:
89+
- stage1
90+
- stage2
4791
strategy:
4892
matrix:
4993
target: [golang, python, qt, rust, dotnet6]
5094
steps:
95+
- name: Download artifact
96+
uses: actions/download-artifact@v4
97+
with:
98+
name: ${{ needs.stage2.outputs.UUID }}-base
99+
path: ${{ runner.temp }}
51100
- name: Checkout the Git repository
52101
uses: actions/checkout@v3
53102
- name: Login to GitHub Container Registry
@@ -58,5 +107,19 @@ jobs:
58107
password: ${{ secrets.GITHUB_TOKEN }}
59108
- name: Set up Docker Buildx
60109
uses: docker/setup-buildx-action@v3
110+
- name: Import container
111+
run: |
112+
pushd ${{ runner.temp }}
113+
tar xf ${{ needs.stage2.outputs.UUID }}-base.tar.gz
114+
popd
115+
rm ${{ runner.temp }}/${{ needs.stage2.outputs.UUID }}-base.tar.gz
61116
- name: Build and push toolchain
62-
run: ./scripts/build -g -s ${{ matrix.target }}
117+
run: ./scripts/build -g -s ${{ matrix.target }} -c ghcr.io/toltec-dev/base=oci-layout://${{ runner.temp }}
118+
- name: Export the container
119+
run: docker image save ghcr.io/toltec-dev/${{ matrix.target }} | gzip > ${{ runner.temp }}/${{ needs.stage1.outputs.UUID }}-${{ matrix.target }}.tar.gz
120+
- name: Upload artifact
121+
uses: actions/upload-artifact@v4
122+
with:
123+
name: ${{ needs.stage1.outputs.UUID }}-${{ matrix.target }}
124+
path: ${{ runner.temp }}/${{ needs.stage1.outputs.UUID }}-${{ matrix.target }}.tar.gz
125+
retention-days: 1

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
## Toltec Build Toolchain
22

3-
This branch contains the Docker image definitions for the `3.x` releases.\
3+
This branch contains the Docker image definitions for the `4.x` releases.\
44
[See the main README file for more information →](https://github.com/toltec-dev/toolchain#readme)

0 commit comments

Comments
 (0)