1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 03:57:44 +00:00

maint/CICD ~ re-label bash script steps for easier review

This commit is contained in:
Roy Ivy III 2023-01-18 11:41:39 -06:00
parent 6f5f3736ce
commit f4086f237f
3 changed files with 40 additions and 6 deletions

View file

@ -116,6 +116,7 @@ jobs:
outputs CARGO_FEATURES_OPTION outputs CARGO_FEATURES_OPTION
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt} rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt}
rustup toolchain install stable -c rustfmt --profile minimal rustup toolchain install stable -c rustfmt --profile minimal
rustup default stable rustup default stable
@ -170,11 +171,13 @@ jobs:
- name: Install/setup prerequisites - name: Install/setup prerequisites
shell: bash shell: bash
run: | run: |
## Install/setup prerequisites
case '${{ matrix.job.os }}' in case '${{ matrix.job.os }}' in
macos-latest) brew install coreutils ;; # needed for show-utils.sh macos-latest) brew install coreutils ;; # needed for show-utils.sh
esac esac
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rustup toolchain install stable -c clippy --profile minimal rustup toolchain install stable -c clippy --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -276,6 +279,7 @@ jobs:
outputs CARGO_UTILITY_LIST_OPTIONS outputs CARGO_UTILITY_LIST_OPTIONS
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rustup toolchain install stable -c clippy --profile minimal rustup toolchain install stable -c clippy --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -307,6 +311,7 @@ jobs:
outputs CARGO_FEATURES_OPTION outputs CARGO_FEATURES_OPTION
- name: Install `rust` toolchain (v${{ env.RUST_MIN_SRV }}) - name: Install `rust` toolchain (v${{ env.RUST_MIN_SRV }})
run: | run: |
## Install `rust` toolchain (v${{ env.RUST_MIN_SRV }})
rustup toolchain install ${{ env.RUST_MIN_SRV }} --profile minimal rustup toolchain install ${{ env.RUST_MIN_SRV }} --profile minimal
rustup default ${{ env.RUST_MIN_SRV }} rustup default ${{ env.RUST_MIN_SRV }}
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -361,6 +366,7 @@ jobs:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rustup toolchain install stable --profile minimal rustup toolchain install stable --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -384,6 +390,7 @@ jobs:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rustup toolchain install stable --profile minimal rustup toolchain install stable --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -415,6 +422,7 @@ jobs:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rustup toolchain install stable --profile minimal rustup toolchain install stable --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -439,6 +447,7 @@ jobs:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rustup toolchain install nightly --profile minimal rustup toolchain install nightly --profile minimal
rustup default nightly rustup default nightly
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -466,19 +475,22 @@ jobs:
sudo apt-get install jq sudo apt-get install jq
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rustup toolchain install stable --profile minimal rustup toolchain install stable --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: "`make install`" - name: "`make install`"
shell: bash shell: bash
run: | run: |
## `make install`
make install DESTDIR=target/size-release/ make install DESTDIR=target/size-release/
make install MULTICALL=y DESTDIR=target/size-multi-release/ make install MULTICALL=y DESTDIR=target/size-multi-release/
# strip the results # strip the results
strip target/size*/usr/local/bin/* strip target/size*/usr/local/bin/*
- name: "Compute sizes" - name: Compute uutil release sizes
shell: bash shell: bash
run: | run: |
## Compute uutil release sizes
SIZE=$(du -s target/size-release/usr/local/bin/|awk '{print $1}') SIZE=$(du -s target/size-release/usr/local/bin/|awk '{print $1}')
SIZEMULTI=$(du -s target/size-multi-release/usr/local/bin/|awk '{print $1}') SIZEMULTI=$(du -s target/size-multi-release/usr/local/bin/|awk '{print $1}')
jq -n \ jq -n \
@ -652,6 +664,7 @@ jobs:
esac esac
- name: rust toolchain ~ install - name: rust toolchain ~ install
run: | run: |
## rust toolchain ~ install
rustup toolchain install ${{ env.RUST_MIN_SRV }} -t ${{ matrix.job.target }} --profile minimal rustup toolchain install ${{ env.RUST_MIN_SRV }} -t ${{ matrix.job.target }} --profile minimal
rustup default ${{ env.RUST_MIN_SRV }} rustup default ${{ env.RUST_MIN_SRV }}
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -694,11 +707,13 @@ jobs:
- name: Build - name: Build
shell: bash shell: bash
run: | run: |
## Build
${{ steps.vars.outputs.CARGO_CMD }} +${{ env.RUST_MIN_SRV }} build --release \ ${{ steps.vars.outputs.CARGO_CMD }} +${{ env.RUST_MIN_SRV }} build --release \
--target=${{ matrix.job.target }} ${{ matrix.job.cargo-options }} ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }} --target=${{ matrix.job.target }} ${{ matrix.job.cargo-options }} ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }}
- name: Test - name: Test
shell: bash shell: bash
run: | run: |
## Test
${{ steps.vars.outputs.CARGO_CMD }} +${{ env.RUST_MIN_SRV }} test --target=${{ matrix.job.target }} \ ${{ steps.vars.outputs.CARGO_CMD }} +${{ env.RUST_MIN_SRV }} test --target=${{ matrix.job.target }} \
${{ steps.vars.outputs.CARGO_TEST_OPTIONS}} ${{ matrix.job.cargo-options }} ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }} ${{ steps.vars.outputs.CARGO_TEST_OPTIONS}} ${{ matrix.job.cargo-options }} ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }}
env: env:
@ -706,6 +721,7 @@ jobs:
- name: Test individual utilities - name: Test individual utilities
shell: bash shell: bash
run: | run: |
## Test individual utilities
${{ steps.vars.outputs.CARGO_CMD }} +${{ env.RUST_MIN_SRV }} test --target=${{ matrix.job.target }} \ ${{ steps.vars.outputs.CARGO_CMD }} +${{ env.RUST_MIN_SRV }} test --target=${{ matrix.job.target }} \
${{ steps.vars.outputs.CARGO_TEST_OPTIONS}} ${{ matrix.job.cargo-options }} ${{ steps.dep_vars.outputs.CARGO_UTILITY_LIST_OPTIONS }} ${{ steps.vars.outputs.CARGO_TEST_OPTIONS}} ${{ matrix.job.cargo-options }} ${{ steps.dep_vars.outputs.CARGO_UTILITY_LIST_OPTIONS }}
env: env:
@ -782,10 +798,11 @@ jobs:
run: | run: |
## Install/setup prerequisites ## Install/setup prerequisites
make prepare-busytest make prepare-busytest
- name: "Run BusyBox test suite" - name: Run BusyBox test suite
id: summary id: summary
shell: bash shell: bash
run: | run: |
## Run BusyBox test suite
set -v set -v
cp .busybox-config target/debug/.config cp .busybox-config target/debug/.config
## Run BusyBox test suite ## Run BusyBox test suite
@ -853,11 +870,13 @@ jobs:
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: rust toolchain ~ install - name: rust toolchain ~ install
run: | run: |
## rust toolchain ~ install
rustup toolchain install ${{ env.RUST_MIN_SRV }} --profile minimal rustup toolchain install ${{ env.RUST_MIN_SRV }} --profile minimal
rustup default ${{ env.RUST_MIN_SRV }} rustup default ${{ env.RUST_MIN_SRV }}
- name: "Build coreutils as multiple binaries" - name: Build coreutils as multiple binaries
shell: bash shell: bash
run: | run: |
## Build individual uutil binaries
set -v set -v
make make
- name: Install/setup prerequisites - name: Install/setup prerequisites
@ -865,12 +884,12 @@ jobs:
run: | run: |
## Install/setup prerequisites ## Install/setup prerequisites
make toybox-src make toybox-src
- name: "Run Toybox test suite" - name: Run Toybox test suite
id: summary id: summary
shell: bash shell: bash
run: | run: |
set -v
## Run Toybox test suite ## Run Toybox test suite
set -v
cd tmp/toybox-*/ cd tmp/toybox-*/
make defconfig make defconfig
make tests &> tmp.log || true make tests &> tmp.log || true
@ -1107,6 +1126,7 @@ jobs:
esac esac
- name: rust toolchain ~ install - name: rust toolchain ~ install
run: | run: |
## rust toolchain ~ install
rustup toolchain install ${{ steps.vars.outputs.TOOLCHAIN }} --profile minimal rustup toolchain install ${{ steps.vars.outputs.TOOLCHAIN }} --profile minimal
rustup default ${{ steps.vars.outputs.TOOLCHAIN }} rustup default ${{ steps.vars.outputs.TOOLCHAIN }}
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2

View file

@ -38,6 +38,7 @@ jobs:
outputs RUST_MIN_SRV outputs RUST_MIN_SRV
- name: Install `rust` toolchain (v${{ steps.vars.outputs.RUST_MIN_SRV }}) - name: Install `rust` toolchain (v${{ steps.vars.outputs.RUST_MIN_SRV }})
run: | run: |
## Install `rust` toolchain (v${{ steps.vars.outputs.RUST_MIN_SRV }})
rustup toolchain install ${{ steps.vars.outputs.RUST_MIN_SRV }} --profile minimal rustup toolchain install ${{ steps.vars.outputs.RUST_MIN_SRV }} --profile minimal
rustup default ${{ steps.vars.outputs.RUST_MIN_SRV }} rustup default ${{ steps.vars.outputs.RUST_MIN_SRV }}
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -102,6 +103,7 @@ jobs:
outputs CARGO_FEATURES_OPTION outputs CARGO_FEATURES_OPTION
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt} rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt}
rustup toolchain install stable -c rustfmt --profile minimal rustup toolchain install stable -c rustfmt --profile minimal
rustup default stable rustup default stable

View file

@ -72,6 +72,7 @@ jobs:
path: "${{ steps.vars.outputs.path_reference }}" path: "${{ steps.vars.outputs.path_reference }}"
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt} rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt}
rustup toolchain install stable -c rustfmt --profile minimal rustup toolchain install stable -c rustfmt --profile minimal
rustup default stable rustup default stable
@ -84,6 +85,7 @@ jobs:
- name: Add various locales - name: Add various locales
shell: bash shell: bash
run: | run: |
## Add various locales
echo "Before:" echo "Before:"
locale -a locale -a
## Some tests fail with 'cannot change locale (en_US.ISO-8859-1): No such file or directory' ## Some tests fail with 'cannot change locale (en_US.ISO-8859-1): No such file or directory'
@ -108,28 +110,32 @@ jobs:
- name: Run GNU tests - name: Run GNU tests
shell: bash shell: bash
run: | run: |
## Run GNU tests
path_GNU='${{ steps.vars.outputs.path_GNU }}' path_GNU='${{ steps.vars.outputs.path_GNU }}'
path_UUTILS='${{ steps.vars.outputs.path_UUTILS }}' path_UUTILS='${{ steps.vars.outputs.path_UUTILS }}'
bash "${path_UUTILS}/util/run-gnu-test.sh" bash "${path_UUTILS}/util/run-gnu-test.sh"
- name: Run GNU root tests - name: Run GNU root tests
shell: bash shell: bash
run: | run: |
## Run GNU root tests
path_GNU='${{ steps.vars.outputs.path_GNU }}' path_GNU='${{ steps.vars.outputs.path_GNU }}'
path_UUTILS='${{ steps.vars.outputs.path_UUTILS }}' path_UUTILS='${{ steps.vars.outputs.path_UUTILS }}'
bash "${path_UUTILS}/util/run-gnu-test.sh" run-root bash "${path_UUTILS}/util/run-gnu-test.sh" run-root
- name: Extract testing info into JSON - name: Extract testing info into JSON
shell: bash shell: bash
run : | run : |
## Extract testing info into JSON
path_UUTILS='${{ steps.vars.outputs.path_UUTILS }}' path_UUTILS='${{ steps.vars.outputs.path_UUTILS }}'
python ${path_UUTILS}/util/gnu-json-result.py ${{ steps.vars.outputs.path_GNU_tests }} > ${{ steps.vars.outputs.TEST_FULL_SUMMARY_FILE }} python ${path_UUTILS}/util/gnu-json-result.py ${{ steps.vars.outputs.path_GNU_tests }} > ${{ steps.vars.outputs.TEST_FULL_SUMMARY_FILE }}
- name: Extract/summarize testing info - name: Extract/summarize testing info
id: summary id: summary
shell: bash shell: bash
run: | run: |
path_UUTILS='${{ steps.vars.outputs.path_UUTILS }}'
## Extract/summarize testing info ## Extract/summarize testing info
outputs() { step_id="${{ github.action }}"; for var in "$@" ; do echo steps.${step_id}.outputs.${var}="${!var}"; echo "${var}=${!var}" >> $GITHUB_OUTPUT; done; } outputs() { step_id="${{ github.action }}"; for var in "$@" ; do echo steps.${step_id}.outputs.${var}="${!var}"; echo "${var}=${!var}" >> $GITHUB_OUTPUT; done; }
# #
path_UUTILS='${{ steps.vars.outputs.path_UUTILS }}'
#
SUITE_LOG_FILE='${{ steps.vars.outputs.SUITE_LOG_FILE }}' SUITE_LOG_FILE='${{ steps.vars.outputs.SUITE_LOG_FILE }}'
ROOT_SUITE_LOG_FILE='${{ steps.vars.outputs.ROOT_SUITE_LOG_FILE }}' ROOT_SUITE_LOG_FILE='${{ steps.vars.outputs.ROOT_SUITE_LOG_FILE }}'
ls -al ${SUITE_LOG_FILE} ${ROOT_SUITE_LOG_FILE} ls -al ${SUITE_LOG_FILE} ${ROOT_SUITE_LOG_FILE}
@ -185,6 +191,7 @@ jobs:
- name: Compare test failures VS reference - name: Compare test failures VS reference
shell: bash shell: bash
run: | run: |
## Compare test failures VS reference
have_new_failures="" have_new_failures=""
REF_LOG_FILE='${{ steps.vars.outputs.path_reference }}/test-logs/test-suite.log' REF_LOG_FILE='${{ steps.vars.outputs.path_reference }}/test-logs/test-suite.log'
REF_SUMMARY_FILE='${{ steps.vars.outputs.path_reference }}/test-summary/gnu-result.json' REF_SUMMARY_FILE='${{ steps.vars.outputs.path_reference }}/test-summary/gnu-result.json'
@ -259,6 +266,7 @@ jobs:
if: success() || failure() # run regardless of prior step success/failure if: success() || failure() # run regardless of prior step success/failure
shell: bash shell: bash
run: | run: |
## Compare test summary VS reference
REF_SUMMARY_FILE='${{ steps.vars.outputs.path_reference }}/test-summary/gnu-result.json' REF_SUMMARY_FILE='${{ steps.vars.outputs.path_reference }}/test-summary/gnu-result.json'
if test -f "${REF_SUMMARY_FILE}"; then if test -f "${REF_SUMMARY_FILE}"; then
echo "Reference SHA1/ID: $(sha1sum -- "${REF_SUMMARY_FILE}")" echo "Reference SHA1/ID: $(sha1sum -- "${REF_SUMMARY_FILE}")"
@ -285,15 +293,18 @@ jobs:
submodules: recursive submodules: recursive
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain
rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt} rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt}
rustup toolchain install nightly -c rustfmt --profile minimal rustup toolchain install nightly -c rustfmt --profile minimal
rustup default nightly rustup default nightly
- name: Install dependencies - name: Install dependencies
run: | run: |
## Install dependencies
sudo apt update sudo apt update
sudo apt install autoconf autopoint bison texinfo gperf gcc g++ gdb python3-pyinotify jq valgrind libexpect-perl -y sudo apt install autoconf autopoint bison texinfo gperf gcc g++ gdb python3-pyinotify jq valgrind libexpect-perl -y
- name: Add various locales - name: Add various locales
run: | run: |
## Add various locales
echo "Before:" echo "Before:"
locale -a locale -a
## Some tests fail with 'cannot change locale (en_US.ISO-8859-1): No such file or directory' ## Some tests fail with 'cannot change locale (en_US.ISO-8859-1): No such file or directory'
@ -310,6 +321,7 @@ jobs:
RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort" RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort"
RUSTDOCFLAGS: "-Cpanic=abort" RUSTDOCFLAGS: "-Cpanic=abort"
run: | run: |
## Build binaries
cd uutils cd uutils
UU_MAKE_PROFILE=debug bash util/build-gnu.sh UU_MAKE_PROFILE=debug bash util/build-gnu.sh
- name: Run GNU tests - name: Run GNU tests