From c6e2f23340efd2112ebd4063dc7a27325fa65ffe Mon Sep 17 00:00:00 2001 From: David Gonzalez Martin Date: Tue, 5 Nov 2024 08:53:33 -0600 Subject: [PATCH] Separate steps --- .github/workflows/ci.yml | 25 +++++++++++++++++---- package.sh | 28 +++++++++++++++++++++++ project.sh | 48 ++++++++-------------------------------- 3 files changed, 58 insertions(+), 43 deletions(-) create mode 100755 package.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df27b27..9a8fb1b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,19 +76,36 @@ jobs: - uses: actions/checkout@v4 - uses: birth-software/github-setup@v2 - name: Fetch LLVM - id: FETCH + id: fetch_llvm run: ./fetch-llvm.sh shell: bash env: CMAKE_BUILD_TYPE: ${{matrix.CMAKE_BUILD_TYPE}} - - name: Build and test + - name: Build + id: build + run: ./project.sh + shell: bash + env: + CMAKE_BUILD_TYPE: ${{matrix.CMAKE_BUILD_TYPE}} + CMAKE_PREFIX_PATH: ${{steps.fetch_llvm.outputs.CMAKE_PREFIX_PATH}} + BB_IS_CI: true + - name: Test run: ./project.sh test all shell: bash env: CMAKE_BUILD_TYPE: ${{matrix.CMAKE_BUILD_TYPE}} - CMAKE_PREFIX_PATH: ${{steps.FETCH.outputs.CMAKE_PREFIX_PATH}} + CMAKE_PREFIX_PATH: ${{steps.fetch_llvm.outputs.CMAKE_PREFIX_PATH}} BB_IS_CI: true - - name: Upload artifact (7z) + - name: Package + id: package + if: ${{ always() && steps.build.outcome == 'success' }} + run: ./package.sh + shell: bash + env: + CMAKE_BUILD_TYPE: ${{matrix.CMAKE_BUILD_TYPE}} + BB_IS_CI: true + - name: Upload artifact + if: ${{ always() && steps.package.outcome == 'success' }} uses: actions/upload-artifact@v4 with: name: ${{env.BLOAT_BUSTER_RELEASE_NAME_BASE}} diff --git a/package.sh b/package.sh new file mode 100755 index 0000000..6969719 --- /dev/null +++ b/package.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +set -eux + +if [ "$BB_IS_CI" == "true" ]; then + case "$BIRTH_OS" in + windows) + OPT_EXTENSION=".exe";; + *) + OPT_EXTENSION="";; + esac + + BB_EXE_PATH="$BUILD_DIR/$COMPILER_NAME$OPT_EXTENSION" + BB_INSTALL_NAME=bloat-buster-$BIRTH_ARCH-$BIRTH_OS-$CMAKE_BUILD_TYPE + BB_INSTALL_PATH="$PWD/$BB_INSTALL_NAME" + mkdir -p $BB_INSTALL_PATH + cp $BB_EXE_PATH $BB_INSTALL_PATH + 7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=64m -ms=on $BB_INSTALL_NAME.7z $BB_INSTALL_PATH + b2sum $BB_INSTALL_NAME.7z > "$BB_INSTALL_NAME.7z.b2sum" + + case "$BIRTH_OS" in + windows) BB_INSTALL_PATH="$(cygpath -w ${BB_INSTALL_PATH})" ;; + *) ;; + esac + + echo "BLOAT_BUSTER_RELEASE_NAME_BASE=$BB_INSTALL_NAME" >> $GITHUB_ENV + echo "BLOAT_BUSTER_RELEASE_PATH_BASE=$BB_INSTALL_PATH" >> $GITHUB_ENV +fi diff --git a/project.sh b/project.sh index fb54762..62da217 100755 --- a/project.sh +++ b/project.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eux -original_dir=$PWD -build_dir=$original_dir/build +ORIGINAL_DIR=$PWD +BUILD_DIR=$ORIGINAL_DIR/build C_COMPILER_PATH=clang CXX_COMPILER_PATH=clang++ ASM_COMPILER_PATH=clang @@ -23,16 +23,6 @@ if [[ -z "${BIRTH_OS-}" ]]; then esac fi -case "$BIRTH_OS" in - linux) - ls -las / - ls -las /usr - ls -las /usr/lib - ;; - *) - ;; -esac - if [[ -z "${BIRTH_ARCH-}" ]]; then case "$(uname -m)" in x86_64) @@ -88,9 +78,9 @@ case $BIRTH_OS in ;; esac -mkdir -p $build_dir +mkdir -p $BUILD_DIR cmake . \ - -B$build_dir \ + -B$BUILD_DIR \ -G Ninja \ -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" \ -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH \ @@ -105,35 +95,15 @@ cmake . \ $CXX_COMPILER_OPT_ARG \ $ASM_COMPILER_OPT_ARG -cd $build_dir +cd $BUILD_DIR ninja -v -cd $original_dir +cd $ORIGINAL_DIR if [ "$#" -ne 0 ]; then - $build_dir/runner $@ + $BUILD_DIR/runner $@ fi if [ "$BB_IS_CI" == "ON" ]; then - case "$BIRTH_OS" in - windows) - OPT_EXTENSION=".exe";; - *) - OPT_EXTENSION="";; - esac - - BB_EXE_PATH="$build_dir/$COMPILER_NAME$OPT_EXTENSION" - BB_INSTALL_NAME=bloat-buster-$BIRTH_ARCH-$BIRTH_OS-$CMAKE_BUILD_TYPE - BB_INSTALL_PATH="$PWD/$BB_INSTALL_NAME" - mkdir -p $BB_INSTALL_PATH - cp $BB_EXE_PATH $BB_INSTALL_PATH - 7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=64m -ms=on $BB_INSTALL_NAME.7z $BB_INSTALL_PATH - b2sum $BB_INSTALL_NAME.7z > "$BB_INSTALL_NAME.7z.b2sum" - - case "$BIRTH_OS" in - windows) BB_INSTALL_PATH="$(cygpath -w ${BB_INSTALL_PATH})" ;; - *) ;; - esac - - echo "BLOAT_BUSTER_RELEASE_NAME_BASE=$BB_INSTALL_NAME" >> $GITHUB_ENV - echo "BLOAT_BUSTER_RELEASE_PATH_BASE=$BB_INSTALL_PATH" >> $GITHUB_ENV + echo "BUILD_DIR=$BUILD_DIR" >> $GITHUB_ENV + echo "COMPILER_NAME=$COMPILER_NAME" >> $GITHUB_ENV fi