diff options
author | Xing GUO <higuoxing@gmail.com> | 2021-01-17 14:17:18 +0800 |
---|---|---|
committer | Xing GUO <higuoxing@gmail.com> | 2021-01-17 22:59:13 +0800 |
commit | d06727bf8d6adcf26280f1c0bf80bed5f37262c5 (patch) | |
tree | f38161466d3db1958fc806a1e5ee1e8ef914ad07 /.github | |
parent | 2d676e45359295f83d62c6a1e03e2609598e83a6 (diff) | |
download | riscv-gnu-toolchain-d06727bf8d6adcf26280f1c0bf80bed5f37262c5.zip riscv-gnu-toolchain-d06727bf8d6adcf26280f1c0bf80bed5f37262c5.tar.gz riscv-gnu-toolchain-d06727bf8d6adcf26280f1c0bf80bed5f37262c5.tar.bz2 |
[CI] Improve GitHub Action scripts.
This patch helps improve GitHub Action scripts.
* Make CI happy again after d3dfbee69fc23d083384051d2c3a55da993a9110.
* Simplify the logic of GH Action scripts using 'matrix'.
* Add new precompile process for rv32/64-elf toolchain.
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/packaging.yaml | 134 |
1 files changed, 17 insertions, 117 deletions
diff --git a/.github/workflows/packaging.yaml b/.github/workflows/packaging.yaml index 55c1868..227ae0f 100644 --- a/.github/workflows/packaging.yaml +++ b/.github/workflows/packaging.yaml @@ -6,8 +6,13 @@ on: - master jobs: - checkout: - runs-on: ubuntu-latest + package: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-18.04, ubuntu-20.04] + mode: [newlib, linux] + target: [rv32gc-ilp32d, rv64gc-lp64d] steps: - uses: actions/checkout@v2 @@ -15,132 +20,27 @@ jobs: run: | git submodule init git submodule update --recursive --progress --recommend-shallow - - # workaround https://github.com/actions/upload-artifact/issues/38 - - name: tarball source - run: | - base=$(basename $PWD) - cd .. - tar czvf source.tar.gz --exclude-vcs -C $base . - mv source.tar.gz $base/ - - - uses: actions/upload-artifact@v2 - with: - name: source-code-full - path: source.tar.gz - - - build-riscv32-ubuntu_18_04: - needs: checkout - runs-on: ubuntu-18.04 - steps: - - uses: actions/download-artifact@v2 - with: - name: source-code-full - - # workaround https://github.com/actions/upload-artifact/issues/38 - - name: tarball source - run: tar -xvf source.tar.gz - - - name: install dependencies - run: sudo ./.github/setup-apt.sh - - - name: Build Toolchain - run: | - ./configure --prefix=/opt/riscv --with-arch=rv32gc --with-abi=ilp32d - sudo make -j $(nproc) linux - - name: tarball build - run: tar czvf riscv.tar.gz -C /opt/ riscv/ - - - uses: actions/upload-artifact@v2 - with: - name: riscv32-glibc-ubuntu_18_04-nightly - path: riscv.tar.gz - - - build-riscv64-ubuntu_18_04: - needs: checkout - runs-on: ubuntu-18.04 - steps: - - uses: actions/download-artifact@v2 - with: - name: source-code-full - - # workaround https://github.com/actions/upload-artifact/issues/38 - - name: tarball source - run: tar -xvf source.tar.gz - - name: install dependencies run: sudo ./.github/setup-apt.sh - - name: Build Toolchain + - name: build toolchain run: | - ./configure --prefix=/opt/riscv - sudo make -j $(nproc) linux + TARGET_TUPLE=($(echo ${{ matrix.target }} | tr "-" "\n")) + ./configure --prefix=/opt/riscv --with-arch=${TARGET_TUPLE[0]} --with-abi=${TARGET_TUPLE[1]} + sudo make -j $(nproc) ${{ matrix.mode }} - name: tarball build run: tar czvf riscv.tar.gz -C /opt/ riscv/ - - - uses: actions/upload-artifact@v2 - with: - name: riscv64-glibc-ubuntu_18_04-nightly - path: riscv.tar.gz - - build-riscv32-ubuntu_20_04: - needs: checkout - runs-on: ubuntu-20.04 - steps: - - uses: actions/download-artifact@v2 - with: - name: source-code-full - - # workaround https://github.com/actions/upload-artifact/issues/38 - - name: tarball source - run: tar -xvf source.tar.gz - - - name: install dependencies - run: sudo ./.github/setup-apt.sh - - - name: Build Toolchain + - name: generate prebuilt toolchain name + id: toolchain-name-generator run: | - ./configure --prefix=/opt/riscv --with-arch=rv32gc --with-abi=ilp32d - sudo make -j $(nproc) linux - - - name: tarball build - run: tar czvf riscv.tar.gz -C /opt/ riscv/ - - - uses: actions/upload-artifact@v2 - with: - name: riscv32-glibc-ubuntu_20_04-nightly - path: riscv.tar.gz + if [[ "${{ matrix.target }}" == *"32"* ]]; then BITS=32; else BITS=64; fi + if [[ "${{ matrix.mode }}" == "linux" ]]; then MODE="glibc"; else MODE="elf"; fi + echo ::set-output name=TOOLCHAIN_NAME::riscv$BITS-$MODE-${{ matrix.os }}-nightly - - build-riscv64-ubuntu_20_04: - needs: checkout - runs-on: ubuntu-20.04 - steps: - - uses: actions/download-artifact@v2 - with: - name: source-code-full - - # workaround https://github.com/actions/upload-artifact/issues/38 - - name: tarball source - run: tar -xvf source.tar.gz - - - name: install dependencies - run: sudo ./.github/setup-apt.sh - - - name: Build Toolchain - run: | - ./configure --prefix=/opt/riscv - sudo make -j $(nproc) linux - - - name: tarball build - run: tar czvf riscv.tar.gz -C /opt/ riscv/ - - uses: actions/upload-artifact@v2 with: - name: riscv64-glibc-ubuntu_20_04-nightly + name: ${{ steps.toolchain-name-generator.outputs.TOOLCHAIN_NAME }} path: riscv.tar.gz |