49 lines
1.7 KiB
YAML
49 lines
1.7 KiB
YAML
name: "Build baremetal toolchain"
|
|
on: ["push"]
|
|
jobs:
|
|
build:
|
|
runs-on: "ubuntu-latest"
|
|
steps:
|
|
- uses: "actions/checkout@v3"
|
|
with:
|
|
repository: "crosstool-ng/crosstool-ng"
|
|
path: "ct_ng"
|
|
- uses: "actions/checkout@v3"
|
|
with:
|
|
path: "tc"
|
|
- name: "ct-ng dependencies"
|
|
run: |
|
|
sudo apt-get install -y gperf help2man libtool-bin meson ninja-build
|
|
echo "${{ github.workspace }}/.local/bin" >> $GITHUB_PATH
|
|
- name: "Build ct-ng"
|
|
working-directory: "ct_ng"
|
|
run: "./bootstrap && ./configure --prefix=${{ github.workspace }}/.local && make && make install"
|
|
- name: "Create build environment"
|
|
run: "mkdir -p build/tarballs && cp tc/Baremetal/defconfig build/defconfig"
|
|
- name: "Patch defconfig & configure build"
|
|
working-directory: "build"
|
|
run: |
|
|
echo CT_LOCAL_TARBALLS_DIR=\"${{ github.workspace }}/build/tarballs\" >> defconfig
|
|
echo CT_PREFIX_DIR=\"\${CT_TOP_DIR}/\${CT_HOST:+HOST-${CT_HOST}/}\${CT_TARGET}\" >> defconfig
|
|
echo CT_LOG_PROGRESS_BAR=n >> defconfig
|
|
ct-ng defconfig
|
|
- name: "Tarball cache management"
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: "build/tarballs"
|
|
key: ${{ runner.os }}-ct-ng-tarballs
|
|
- name: "Build toolchain"
|
|
working-directory: "build"
|
|
run: "ct-ng build"
|
|
- name: "Create toolchain archive"
|
|
working-directory: "build"
|
|
run: "tar -cvzf sh-unknown-elf-${{ github.sha }}.tar.gz sh-unknown-elf"
|
|
- name: "Publish artifact"
|
|
uses: "actions/upload-artifact@v3"
|
|
with:
|
|
name: "toolchain archive"
|
|
path: |
|
|
build/sh-unknown-elf-${{ github.sha }}.tar.gz
|
|
build/build.log
|
|
retention-days: 30
|