mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-20 13:23:08 +00:00
cf6b1740a1
more specificaly to the tarballs download. The function CT_Fetch now touches the already existing files to be comparable to the not used ones that can araise when a package is updated. This comparsion is needed because if it would not exist the tarball would grow in size due to not used but still cached packages. This would take time but is definitly something to worry about. Signed-off-by: Quentin Boswank <qubos@outlook.de>
141 lines
4.5 KiB
YAML
141 lines
4.5 KiB
YAML
---
|
|
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
crosstool:
|
|
runs-on: ${{ matrix.host }}
|
|
strategy:
|
|
matrix:
|
|
host: ["ubuntu-22.04", "macos-latest"]
|
|
steps:
|
|
- name: "clone"
|
|
uses: actions/checkout@v3
|
|
- name: "prereq Linux"
|
|
if: ${{ runner.os == 'Linux' }}
|
|
run: |
|
|
sudo apt-get install -y gperf help2man libtool-bin meson ninja-build
|
|
- name: "prereq macOS"
|
|
if: ${{ runner.os == 'macOS' }}
|
|
run: |
|
|
brew install autoconf automake bash binutils gawk gnu-sed \
|
|
gnu-tar help2man make ncurses
|
|
- name: "build ct-ng"
|
|
run: |
|
|
if [ "$RUNNER_OS" == "macOS" ]; then
|
|
export PATH="$PATH:/usr/local/opt/binutils/bin"
|
|
export CPPFLAGS="-I/usr/local/opt/ncurses/include -I/usr/local/opt/gettext/include"
|
|
export LDFLAGS="-L/usr/local/opt/ncurses/lib -L/usr/local/opt/gettext/lib"
|
|
fi
|
|
./bootstrap
|
|
./configure --prefix=$PWD/.local/
|
|
make
|
|
make install
|
|
tar -cf ct-ng.tar .local/
|
|
- name: "upload ct-ng"
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: crosstool.${{ matrix.host }}
|
|
path: ct-ng.tar
|
|
- name: "upload config.log"
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: config.log.${{ matrix.host }}
|
|
path: config.log
|
|
if: ${{ always() }}
|
|
|
|
tarballs:
|
|
needs: crosstool
|
|
runs-on: ${{ matrix.host }}
|
|
strategy:
|
|
matrix:
|
|
host: ["ubuntu-22.04"]
|
|
steps:
|
|
- name: "download ct-ng"
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: crosstool.${{ matrix.host }}
|
|
- name: "extract ct-ng"
|
|
run: |
|
|
tar -xf ct-ng.tar
|
|
- name: cache tarballs
|
|
id: cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: src.tar
|
|
key: src.tar-${{ hashFiles('.local/share/crosstool-ng/packages') }}-${{ hashFiles('.local/share/crosstool-ng/samples') }}
|
|
restore-keys: |
|
|
src.tar-${{ hashFiles('.local/share/crosstool-ng/packages') }}-
|
|
src.tar-
|
|
- name: extract tarballs
|
|
run: |
|
|
tar -xvf src.tar || true
|
|
touch stamp
|
|
- name: "prereq Linux"
|
|
if: ${{ runner.os == 'Linux' }}
|
|
run: |
|
|
sudo apt-get install -y gperf help2man libtool-bin
|
|
echo "$GITHUB_WORKSPACE/.local/bin" >> $GITHUB_PATH
|
|
- name: "ct-ng source"
|
|
run: |
|
|
mkdir -p src
|
|
for sample in aarch64-unknown-linux-gnu arm-picolibc-eabi \
|
|
arm-unknown-linux-musleabi armv6-nommu-linux-uclibcgnueabi \
|
|
x86_64-w64-mingw32; do \
|
|
ct-ng $sample; \
|
|
sed -i -e '/CT_LOG_PROGRESS_BAR/s/y$/n/' .config; \
|
|
sed -i -e '/CT_LOCAL_TARBALLS_DIR/s/HOME/CT_TOP_DIR/' .config; \
|
|
sed -i -e '/CT_PREFIX_DIR/s/HOME/CT_TOP_DIR/' .config; \
|
|
sed -i -e 's/^.*CT_COMP_TOOLS_BISON.*$/CT_COMP_TOOLS_BISON=y/' .config; \
|
|
sed -i -e 's/^.*CT_COMP_TOOLS_M4.*$/CT_COMP_TOOLS_M4=y/' .config; \
|
|
sed -i -e 's/^.*CT_COMP_TOOLS_MAKE.*$/CT_COMP_TOOLS_MAKE=y/' .config; \
|
|
ct-ng olddefconfig; \
|
|
ct-ng source; \
|
|
done
|
|
find src -type f -not -newer stamp -delete -print
|
|
tar -cvf src.tar src
|
|
|
|
toolchains:
|
|
needs: [crosstool, tarballs]
|
|
uses: ./.github/workflows/build-toolchains.yml
|
|
with:
|
|
samples: >-
|
|
[
|
|
"aarch64-unknown-linux-gnu",
|
|
"arc-multilib-elf32",
|
|
"arc-multilib-linux-gnu",
|
|
"arc-multilib-linux-uclibc",
|
|
"arm-picolibc-default",
|
|
"arm-unknown-linux-gnueabi",
|
|
"arm-unknown-linux-musleabi",
|
|
"armv6-nommu-linux-uclibcgnueabi",
|
|
"avr",
|
|
"i686-w64-mingw32",
|
|
"loongarch64-unknown-linux-gnu",
|
|
"mips-unknown-elf",
|
|
"mips-unknown-linux-gnu",
|
|
"mips64-unknown-linux-gnu",
|
|
"powerpc-unknown-linux-gnu",
|
|
"powerpc64-unknown-linux-gnu",
|
|
"riscv32-unknown-elf",
|
|
"riscv64-unknown-elf",
|
|
"s390-unknown-linux-gnu",
|
|
"sh-unknown-elf",
|
|
"sparc-unknown-linux-gnu",
|
|
"x86_64-multilib-linux-uclibc",
|
|
"x86_64-unknown-linux-gnu",
|
|
"x86_64-w64-mingw32",
|
|
"xtensa-fsf-linux-uclibc"
|
|
]
|
|
|
|
canadian-cross:
|
|
needs: [toolchains]
|
|
uses: ./.github/workflows/build-toolchains.yml
|
|
with:
|
|
samples: >-
|
|
["x86_64-w64-mingw32,x86_64-pc-linux-gnu"]
|
|
canadian-cross: true
|