You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🏋️♂️Putting the image on a serious diet (v4.0.0) (#13)
* Test Alpine linux (See Jerrylum/pros-build)
* Update Dockerfile
* Update Dockerfile
* Use pipx
* Update Dockerfile
* Add root/.local/bin to path
* Make build.sh in the root folder
* Try specifying filename where to copy build.sh to
* Update Dockerfile
* Update Dockerfile
* Change /build.sh to ~/build.sh
* Update Dockerfile
* Update Dockerfile
* add sh and bash for good measure
* Update Dockerfile
* Put the toolchain on a serious diet
* Comment out G++
* forgot to uncomment the path 💀
* add G++ back in
* run ldd on each program in the dieted toolchain
* try ldd again
* Update Dockerfile
* Update copied files
* Change non-dieted files.
* Add libexec to included files
* add possibly missing /
* Update Dockerfile
* Remove extra folder from mkdir
* remove -r flag
* include arm-none-eabi/lib too
* pivot to deleting stuff from the toolchain folder instead of selectively copying stuff. Starting with arm-none-eabi folder
* Delete share folder instead
* try deleting arm-none-eabi/lib
* forgot the folder prefix
* delete /lib/gcc/arm-none-eabi/13.3.1/arm and /lib/gcc/arm-none-eabi/13.3.1/thumb
* delete all but v7-a+fp in thumb
* forgot /arm-none-eabi-toolchain prefix again
* remove files in RUN rm -f /arm-none-eabi-toolchain/lib/gcc/arm-none-eabi/13.3.1/* but not folders
* Update Dockerfile
* Update action.yml to test externally
* Update Dockerfile with stages
* fix copy from stage
* comment out rm command to test stages
* add back package installation
* Update Dockerfile
* refactor to have more stages
* Update Dockerfile
* Update build-image.yml
* Update build-image.yml
* Update build-image.yml
* Remove line that deletes all 13.3.1 subfiles and subfolders
* Diet some more files
arm-none-eabi-cpp, arm-none-eabi-gdb, arm-none-eabi-gcc-13.3.1,
* Change dieted files to their actual location (misread on my part)
* Update Dockerfile
* diet some more folders
* we cut too much
* Update build.sh
* Update test.yml
* revert back
* revert back
* Update action.yml
* also remove gbd-py from toolchain bin folder
* Update Dockerfile
* re-add pros-cli
* steal additional thumb deleting from jerryio's container
* Update Dockerfile labels
* Update Dockerfile
* Thanks to @Jerrylum
* Remove total build script runtime from build.sh as it's confusing
* Delete packagelist
* Update README.md
* Update action.yml with v4.0.0
* remove pruning steps
* Update build.sh to use shell instead of bash
* remove bash
* Restore bash
* ♻️ Improved run instruction (#14)
* ♻️ Improved run instruction
- Makes it a little more readable by using heredoc
- Pipes tar.xz to tar to prevent writing it to disk
- Uses brace expansion where possible to shorten
- Don't even write some of the unnecessary files to disk
* split toolchain downloading into seperate RUN command for caching efficency and convert all tar --exclude params to their original rm/find forms.
* Fix broken gcc rm command for /bin/arm-none-eabi-gcc-13.3.1
* fix gcc-13.3.1 removal
* delete long_toolchain variable
* 💄 Remove extra whitespace
* remove package installation from get-dependencies since it's already redone in runner stage and the packages aren't used in the get-deps stage
---------
Co-authored-by: ABUCKY0 <[email protected]>
* Delete commented commands for clarity
---------
Co-authored-by: Andrew Curtis <[email protected]>
RUN mkdir "/arm-none-eabi-toolchain" && wget -O- "https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz" \
14
+
| tar Jxf - -C "/arm-none-eabi-toolchain" --strip-components=1
15
+
RUN<<-"EOF" bash
16
+
set -e
19
17
20
-
# ------------
21
-
# Install ARM Toolchain
22
-
# ------------
23
-
RUN wget "https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz" -O arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
24
-
RUN tar xf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
25
-
RUN rm arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz # Cleanup Image
26
-
RUN mv "/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi""/arm-none-eabi-toolchain"
This action creates an environment capable of building PROS projects and templates, and builds them using [build.sh](/build-tools/build.sh)
6
+
This action creates an environment capable of building PROS projects and templates and builds them using [build.sh](/build-tools/build.sh)
7
7
8
-
Instructions on creating a custom build script, adding additional packages, and using this image as a base are located at the end of this readme.
8
+
Instructions on creating a custom build script, adding additional packages, and using this image as a base are located at the end of this readme.
9
9
10
+
> [!NOTE]
11
+
> Also major thanks to [@JerryLum](https://github.com/jerrylum) for his gracious help and competition in building v4.0.0 to be as fast as it is now!
10
12
## Usage:
11
13
12
14
### Inputs
@@ -62,7 +64,7 @@ jobs:
62
64
63
65
- name: Run LemLib/pros-build
64
66
id: test
65
-
uses: LemLib/pros-build@v3.0.0
67
+
uses: LemLib/pros-build@v4.0.0
66
68
67
69
- name: Upload Artifact
68
70
uses: actions/upload-artifact@v4
@@ -75,22 +77,16 @@ jobs:
75
77
76
78
If you wish to use your own build script using this container as a base, you can do so with the following:
77
79
78
-
It by default includes the packages built into the Ubuntu docker image, and contains the additional packages below:
80
+
> [!WARNING]
81
+
> The container now (v4.* and up) uses Alpine Linux and adds the necessary packages to build a PROS Project. The currently added package is listed below, but your mileage on using anything other than basic make commands in a pros project may vary wildly depending on how you create it.
82
+
> We also trimmed the toolchain to be much smaller, so if you've modified your Makefile to use other features you may have to fork this repository and change what is removed from the toolchain.
79
83
80
-
```
81
-
wget (Used to download the toolchain)
82
-
git (Used to get the HEAD SHA hash)
83
-
gawk (Used to get lines from the user project's Makefile)
84
-
python3-minimal (Minimal installation of Python used for pros-cli)
85
-
python3-pip (Used to install pros-cli in the Dockerfile)
86
-
unzip (Unzips the template so that it can be uploaded to Github Actions)
0 commit comments