From f35b5a5810b5a35646840848abd908812b8fb9c8 Mon Sep 17 00:00:00 2001 From: Concelare <113200622+Concelare@users.noreply.github.com> Date: Tue, 5 Mar 2024 08:40:38 +0000 Subject: [PATCH 01/10] Update nightly.yml Updating to use the /nightly-builds directory (cherry picked from commit 939a832f42f84a229b1dc859c2427cd8d8eea5fc) # Conflicts: # .github/workflows/nightly.yml --- .github/workflows/nightly.yml | 132 ++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 .github/workflows/nightly.yml diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 0000000000..2481c50b05 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,132 @@ +name: Build Nightly Releases +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * *' # run at 0 AM UTC + +env: + CARGO_TERM_COLOR: always + +jobs: + release: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest, ubuntu-22.04] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + + - name: Get version + id: get_version + run: echo "version=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT + + - name: Restore cargo cache + uses: Swatinem/rust-cache@v2 + env: + cache-name: ci + with: + shared-key: ${{ matrix.os }}-${{ env.cache-name }}-stable + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + components: clippy + + - name: Build + if: matrix.os != 'ubuntu-22.04' + run: cargo build + - name: Run tests + if: matrix.os != 'ubuntu-22.04' + run: make test + - name: Run clippy + if: matrix.os != 'ubuntu-22.04' + run: | + cargo clean + make clippy + + - name: Setup MUSL + if: matrix.os == 'ubuntu-latest' + run: | + rustup target add x86_64-unknown-linux-musl + sudo apt-get -qq install musl-tools + + - name: Setup ARM toolchain + if: matrix.os == 'ubuntu-22.04' + run: | + rustup target add aarch64-unknown-linux-gnu + rustup target add armv7-unknown-linux-gnueabihf + rustup target add arm-unknown-linux-gnueabihf + + curl -o $GITHUB_WORKSPACE/aarch64.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz + curl -o $GITHUB_WORKSPACE/arm.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.xz + + tar xf $GITHUB_WORKSPACE/aarch64.tar.xz + tar xf $GITHUB_WORKSPACE/arm.tar.xz + + echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu/bin" >> $GITHUB_PATH + echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin" >> $GITHUB_PATH + + - name: Build Release Mac + if: matrix.os == 'macos-latest' + run: make release-mac + - name: Build Release Linux + if: matrix.os == 'ubuntu-latest' + run: make release-linux-musl + - name: Build Release Win + if: matrix.os == 'windows-latest' + run: make release-win + - name: Build Release Linux ARM + if: matrix.os == 'ubuntu-22.04' + run: make release-linux-arm + + - name: Set SHA + if: matrix.os == 'macos-latest' + id: shasum + run: | + echo sha="$(shasum -a 256 ./release/gitui-mac.tar.gz | awk '{printf $1}')" >> $GITHUB_OUTPUT + + - name: Ubuntu 22.04 Upload Artifact + if: matrix.os == 'ubuntu-22.04' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} + run: | + aws s3 cp ./release/gitui-linux-armv7.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ + aws s3 cp ./release/gitui-linux-arm.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ + aws s3 cp ./release/gitui-linux-aarch64.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ + + - name: Ubuntu Latest Upload Artifact + if: matrix.os == 'ubuntu-latest' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} + run: | + aws s3 cp ./release/gitui-linux-musl.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ + + + - name: MacOS Upload Artifact + if: matrix.os == 'macos-latest' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} + run: | + aws s3 cp ./release/gitui-mac.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ + + - name: Windows Upload Artifact + if: matrix.os == 'windows-latest' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} + run: | + aws s3 cp ./release/gitui.msi s3://"$env:AWS_BUCKET_NAME"/nightly-builds/ + aws s3 cp ./release/gitui-win.tar.gz s3://"$env:AWS_BUCKET_NAME"/nightly-builds/ From de2507e01a9f3b2268adc1b9b73a45f0ff99ba92 Mon Sep 17 00:00:00 2001 From: extrawurst Date: Wed, 27 Mar 2024 16:48:12 +0000 Subject: [PATCH 02/10] lets try nighlies --- .github/workflows/nightly.yml | 158 +++++++++++++++++----------------- 1 file changed, 78 insertions(+), 80 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 2481c50b05..984ad65b6f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -6,22 +6,22 @@ on: env: CARGO_TERM_COLOR: always + AWS_BUCKET_NAME: s3://gitui/nightly/ jobs: release: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest, ubuntu-22.04] + os: [ + ubuntu-latest, + # macos-latest, windows-latest, ubuntu-22.04 + ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - - name: Get version - id: get_version - run: echo "version=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT - - name: Restore cargo cache uses: Swatinem/rust-cache@v2 env: @@ -34,17 +34,18 @@ jobs: with: components: clippy - - name: Build - if: matrix.os != 'ubuntu-22.04' - run: cargo build - - name: Run tests - if: matrix.os != 'ubuntu-22.04' - run: make test - - name: Run clippy - if: matrix.os != 'ubuntu-22.04' - run: | - cargo clean - make clippy + # ideally we trigger the nightly build/deploy only if the normal nightly CI finished successfully + # - name: Build + # if: matrix.os != 'ubuntu-22.04' + # run: cargo build + # - name: Run tests + # if: matrix.os != 'ubuntu-22.04' + # run: make test + # - name: Run clippy + # if: matrix.os != 'ubuntu-22.04' + # run: | + # cargo clean + # make clippy - name: Setup MUSL if: matrix.os == 'ubuntu-latest' @@ -52,81 +53,78 @@ jobs: rustup target add x86_64-unknown-linux-musl sudo apt-get -qq install musl-tools - - name: Setup ARM toolchain - if: matrix.os == 'ubuntu-22.04' - run: | - rustup target add aarch64-unknown-linux-gnu - rustup target add armv7-unknown-linux-gnueabihf - rustup target add arm-unknown-linux-gnueabihf + # - name: Setup ARM toolchain + # if: matrix.os == 'ubuntu-22.04' + # run: | + # rustup target add aarch64-unknown-linux-gnu + # rustup target add armv7-unknown-linux-gnueabihf + # rustup target add arm-unknown-linux-gnueabihf - curl -o $GITHUB_WORKSPACE/aarch64.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz - curl -o $GITHUB_WORKSPACE/arm.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.xz + # curl -o $GITHUB_WORKSPACE/aarch64.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz + # curl -o $GITHUB_WORKSPACE/arm.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.xz - tar xf $GITHUB_WORKSPACE/aarch64.tar.xz - tar xf $GITHUB_WORKSPACE/arm.tar.xz + # tar xf $GITHUB_WORKSPACE/aarch64.tar.xz + # tar xf $GITHUB_WORKSPACE/arm.tar.xz - echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu/bin" >> $GITHUB_PATH - echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin" >> $GITHUB_PATH + # echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu/bin" >> $GITHUB_PATH + # echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin" >> $GITHUB_PATH - - name: Build Release Mac - if: matrix.os == 'macos-latest' - run: make release-mac + # - name: Build Release Mac + # if: matrix.os == 'macos-latest' + # run: make release-mac - name: Build Release Linux if: matrix.os == 'ubuntu-latest' run: make release-linux-musl - - name: Build Release Win - if: matrix.os == 'windows-latest' - run: make release-win - - name: Build Release Linux ARM - if: matrix.os == 'ubuntu-22.04' - run: make release-linux-arm - - - name: Set SHA - if: matrix.os == 'macos-latest' - id: shasum - run: | - echo sha="$(shasum -a 256 ./release/gitui-mac.tar.gz | awk '{printf $1}')" >> $GITHUB_OUTPUT - - - name: Ubuntu 22.04 Upload Artifact - if: matrix.os == 'ubuntu-22.04' - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} - run: | - aws s3 cp ./release/gitui-linux-armv7.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ - aws s3 cp ./release/gitui-linux-arm.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ - aws s3 cp ./release/gitui-linux-aarch64.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ + # - name: Build Release Win + # if: matrix.os == 'windows-latest' + # run: make release-win + # - name: Build Release Linux ARM + # if: matrix.os == 'ubuntu-22.04' + # run: make release-linux-arm + + # - name: Set SHA + # if: matrix.os == 'macos-latest' + # id: shasum + # run: | + # echo sha="$(shasum -a 256 ./release/gitui-mac.tar.gz | awk '{printf $1}')" >> $GITHUB_OUTPUT + + # - name: Ubuntu 22.04 Upload Artifact + # if: matrix.os == 'ubuntu-22.04' + # env: + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + # AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} + # run: | + # aws s3 cp ./release/gitui-linux-armv7.tar.gz $AWS_BUCKET_NAME + # aws s3 cp ./release/gitui-linux-arm.tar.gz $AWS_BUCKET_NAME + # aws s3 cp ./release/gitui-linux-aarch64.tar.gz $AWS_BUCKET_NAME - name: Ubuntu Latest Upload Artifact if: matrix.os == 'ubuntu-latest' env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} - run: | - aws s3 cp ./release/gitui-linux-musl.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ - - - - name: MacOS Upload Artifact - if: matrix.os == 'macos-latest' - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} - run: | - aws s3 cp ./release/gitui-mac.tar.gz s3://"$AWS_BUCKET_NAME"/nightly-builds/ - - - name: Windows Upload Artifact - if: matrix.os == 'windows-latest' - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} run: | - aws s3 cp ./release/gitui.msi s3://"$env:AWS_BUCKET_NAME"/nightly-builds/ - aws s3 cp ./release/gitui-win.tar.gz s3://"$env:AWS_BUCKET_NAME"/nightly-builds/ + aws s3 cp ./release/gitui-linux-x86_64.tar.gz $AWS_BUCKET_NAME + + # - name: MacOS Upload Artifact + # if: matrix.os == 'macos-latest' + # env: + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + # AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + # AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} + # run: | + # aws s3 cp ./release/gitui-mac.tar.gz $AWS_BUCKET_NAME + + # - name: Windows Upload Artifact + # if: matrix.os == 'windows-latest' + # env: + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + # AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + # AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} + # run: | + # aws s3 cp ./release/gitui.msi $AWS_BUCKET_NAME + # aws s3 cp ./release/gitui-win.tar.gz $AWS_BUCKET_NAME From d7731cf2b57254d903d22fca1441ad5d4d6b4ba1 Mon Sep 17 00:00:00 2001 From: extrawurst Date: Wed, 27 Mar 2024 16:49:50 +0000 Subject: [PATCH 03/10] try making it run in branch --- .github/workflows/nightly.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 984ad65b6f..b39fa9a9c2 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,8 +1,9 @@ name: Build Nightly Releases on: - workflow_dispatch: + branch: "*" schedule: - cron: '0 0 * * *' # run at 0 AM UTC + workflow_dispatch: env: CARGO_TERM_COLOR: always From f2ddef8baa200f65f8da447a7ba24d08f9b19871 Mon Sep 17 00:00:00 2001 From: extrawurst Date: Wed, 27 Mar 2024 16:51:01 +0000 Subject: [PATCH 04/10] run in PR for now --- .github/workflows/nightly.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index b39fa9a9c2..547ad92099 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,6 +1,8 @@ name: Build Nightly Releases + on: - branch: "*" + pull_request: + branches: [ "*" ] schedule: - cron: '0 0 * * *' # run at 0 AM UTC workflow_dispatch: From 023d6a655bb2ca79ccec64c42e58c3e976ffa07b Mon Sep 17 00:00:00 2001 From: extrawurst Date: Wed, 27 Mar 2024 16:52:16 +0000 Subject: [PATCH 05/10] run in branch push --- .github/workflows/nightly.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 547ad92099..1275048001 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,8 +1,8 @@ name: Build Nightly Releases on: - pull_request: - branches: [ "*" ] + push: + branches: [ '*' ] schedule: - cron: '0 0 * * *' # run at 0 AM UTC workflow_dispatch: From 6f810e11ed8c93072de808b1f95771ba30238c24 Mon Sep 17 00:00:00 2001 From: extrawurst Date: Wed, 27 Mar 2024 16:59:13 +0000 Subject: [PATCH 06/10] all builds and fixes version --- .github/workflows/cd.yml | 8 +-- .github/workflows/nightly.yml | 111 ++++++++++++++++------------------ Makefile | 10 +-- 3 files changed, 60 insertions(+), 69 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 41e3464360..da3939fb81 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -68,16 +68,16 @@ jobs: - name: Build Release Mac if: matrix.os == 'macos-latest' - run: make release-mac + run: GITUI_RELEASE=1 make release-mac - name: Build Release Linux if: matrix.os == 'ubuntu-latest' - run: make release-linux-musl + run: GITUI_RELEASE=1 make release-linux-musl - name: Build Release Win if: matrix.os == 'windows-latest' - run: make release-win + run: GITUI_RELEASE=1 make release-win - name: Build Release Linux ARM if: matrix.os == 'ubuntu-22.04' - run: make release-linux-arm + run: GITUI_RELEASE=1 make release-linux-arm - name: Set SHA if: matrix.os == 'macos-latest' diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1275048001..4cbf9267c2 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -17,8 +17,7 @@ jobs: fail-fast: false matrix: os: [ - ubuntu-latest, - # macos-latest, windows-latest, ubuntu-22.04 + ubuntu-latest, macos-latest, windows-latest, ubuntu-22.04 ] runs-on: ${{ matrix.os }} @@ -56,51 +55,45 @@ jobs: rustup target add x86_64-unknown-linux-musl sudo apt-get -qq install musl-tools - # - name: Setup ARM toolchain - # if: matrix.os == 'ubuntu-22.04' - # run: | - # rustup target add aarch64-unknown-linux-gnu - # rustup target add armv7-unknown-linux-gnueabihf - # rustup target add arm-unknown-linux-gnueabihf + - name: Setup ARM toolchain + if: matrix.os == 'ubuntu-22.04' + run: | + rustup target add aarch64-unknown-linux-gnu + rustup target add armv7-unknown-linux-gnueabihf + rustup target add arm-unknown-linux-gnueabihf - # curl -o $GITHUB_WORKSPACE/aarch64.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz - # curl -o $GITHUB_WORKSPACE/arm.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.xz + curl -o $GITHUB_WORKSPACE/aarch64.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz + curl -o $GITHUB_WORKSPACE/arm.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.xz - # tar xf $GITHUB_WORKSPACE/aarch64.tar.xz - # tar xf $GITHUB_WORKSPACE/arm.tar.xz + tar xf $GITHUB_WORKSPACE/aarch64.tar.xz + tar xf $GITHUB_WORKSPACE/arm.tar.xz - # echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu/bin" >> $GITHUB_PATH - # echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin" >> $GITHUB_PATH + echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu/bin" >> $GITHUB_PATH + echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin" >> $GITHUB_PATH - # - name: Build Release Mac - # if: matrix.os == 'macos-latest' - # run: make release-mac + - name: Build Release Mac + if: matrix.os == 'macos-latest' + run: make release-mac - name: Build Release Linux if: matrix.os == 'ubuntu-latest' run: make release-linux-musl - # - name: Build Release Win - # if: matrix.os == 'windows-latest' - # run: make release-win - # - name: Build Release Linux ARM - # if: matrix.os == 'ubuntu-22.04' - # run: make release-linux-arm - - # - name: Set SHA - # if: matrix.os == 'macos-latest' - # id: shasum - # run: | - # echo sha="$(shasum -a 256 ./release/gitui-mac.tar.gz | awk '{printf $1}')" >> $GITHUB_OUTPUT - - # - name: Ubuntu 22.04 Upload Artifact - # if: matrix.os == 'ubuntu-22.04' - # env: - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} - # AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} - # run: | - # aws s3 cp ./release/gitui-linux-armv7.tar.gz $AWS_BUCKET_NAME - # aws s3 cp ./release/gitui-linux-arm.tar.gz $AWS_BUCKET_NAME - # aws s3 cp ./release/gitui-linux-aarch64.tar.gz $AWS_BUCKET_NAME + - name: Build Release Win + if: matrix.os == 'windows-latest' + run: make release-win + - name: Build Release Linux ARM + if: matrix.os == 'ubuntu-22.04' + run: GITUI_RELEASE=1 make release-linux-arm + + - name: Ubuntu 22.04 Upload Artifact + if: matrix.os == 'ubuntu-22.04' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} + run: | + aws s3 cp ./release/gitui-linux-armv7.tar.gz $AWS_BUCKET_NAME + aws s3 cp ./release/gitui-linux-arm.tar.gz $AWS_BUCKET_NAME + aws s3 cp ./release/gitui-linux-aarch64.tar.gz $AWS_BUCKET_NAME - name: Ubuntu Latest Upload Artifact if: matrix.os == 'ubuntu-latest' @@ -111,23 +104,21 @@ jobs: run: | aws s3 cp ./release/gitui-linux-x86_64.tar.gz $AWS_BUCKET_NAME - # - name: MacOS Upload Artifact - # if: matrix.os == 'macos-latest' - # env: - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} - # AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - # AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} - # run: | - # aws s3 cp ./release/gitui-mac.tar.gz $AWS_BUCKET_NAME - - # - name: Windows Upload Artifact - # if: matrix.os == 'windows-latest' - # env: - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} - # AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - # AWS_BUCKET_NAME: ${{ secrets.AWS_BUCKET_NAME }} - # run: | - # aws s3 cp ./release/gitui.msi $AWS_BUCKET_NAME - # aws s3 cp ./release/gitui-win.tar.gz $AWS_BUCKET_NAME + - name: MacOS Upload Artifact + if: matrix.os == 'macos-latest' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} + run: | + aws s3 cp ./release/gitui-mac.tar.gz $AWS_BUCKET_NAME + + - name: Windows Upload Artifact + if: matrix.os == 'windows-latest' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} + run: | + aws s3 cp ./release/gitui.msi $AWS_BUCKET_NAME + aws s3 cp ./release/gitui-win.tar.gz $AWS_BUCKET_NAME diff --git a/Makefile b/Makefile index 02aedfe3fb..73e69822ea 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ debug: RUST_BACKTRACE=true cargo run --features=timing -- ${ARGS} build-release: - GITUI_RELEASE=1 cargo build --release --locked + cargo build --release --locked release-mac: build-release strip target/release/gitui @@ -42,7 +42,7 @@ build-linux-musl-debug: cargo build --target=x86_64-unknown-linux-musl build-linux-musl-release: - GITUI_RELEASE=1 cargo build --release --target=x86_64-unknown-linux-musl + cargo build --release --target=x86_64-unknown-linux-musl test-linux-musl: cargo test --workspace --target=x86_64-unknown-linux-musl @@ -64,9 +64,9 @@ build-linux-arm-debug: cargo build --target=arm-unknown-linux-gnueabihf build-linux-arm-release: - GITUI_RELEASE=1 cargo build --release --target=aarch64-unknown-linux-gnu - GITUI_RELEASE=1 cargo build --release --target=armv7-unknown-linux-gnueabihf - GITUI_RELEASE=1 cargo build --release --target=arm-unknown-linux-gnueabihf + cargo build --release --target=aarch64-unknown-linux-gnu + cargo build --release --target=armv7-unknown-linux-gnueabihf + cargo build --release --target=arm-unknown-linux-gnueabihf test: cargo test --workspace From e54302957b86f2e7ac39d893927aa5743f312f6b Mon Sep 17 00:00:00 2001 From: extrawurst Date: Wed, 27 Mar 2024 17:16:34 +0000 Subject: [PATCH 07/10] docs and final ci file --- .github/workflows/ci.yml | 2 +- .github/workflows/nightly.yml | 25 ++++++++++--------------- NIGHTLIES.md | 14 ++++++++++++++ README.md | 10 ++++++---- 4 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 NIGHTLIES.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e653fb26fb..453c8a7909 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: CI on: schedule: - - cron: '0 2 * * *' # run at 2 AM UTC + - cron: '0 2 * * *' push: branches: [ '*' ] pull_request: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 4cbf9267c2..96c8cdab0e 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,10 +1,8 @@ name: Build Nightly Releases on: - push: - branches: [ '*' ] schedule: - - cron: '0 0 * * *' # run at 0 AM UTC + - cron: '0 3 * * *' workflow_dispatch: env: @@ -37,17 +35,14 @@ jobs: components: clippy # ideally we trigger the nightly build/deploy only if the normal nightly CI finished successfully - # - name: Build - # if: matrix.os != 'ubuntu-22.04' - # run: cargo build - # - name: Run tests - # if: matrix.os != 'ubuntu-22.04' - # run: make test - # - name: Run clippy - # if: matrix.os != 'ubuntu-22.04' - # run: | - # cargo clean - # make clippy + - name: Run tests + if: matrix.os != 'ubuntu-22.04' + run: make test + - name: Run clippy + if: matrix.os != 'ubuntu-22.04' + run: | + cargo clean + make clippy - name: Setup MUSL if: matrix.os == 'ubuntu-latest' @@ -82,7 +77,7 @@ jobs: run: make release-win - name: Build Release Linux ARM if: matrix.os == 'ubuntu-22.04' - run: GITUI_RELEASE=1 make release-linux-arm + run: make release-linux-arm - name: Ubuntu 22.04 Upload Artifact if: matrix.os == 'ubuntu-22.04' diff --git a/NIGHTLIES.md b/NIGHTLIES.md new file mode 100644 index 0000000000..afe95a9f41 --- /dev/null +++ b/NIGHTLIES.md @@ -0,0 +1,14 @@ +# Nightlies + +**Use with caution as these binaries are build nightly and might be broken** + +When you find problems please report them and always mention the version that you see in the `help popup` or when running `gitui -V` + +* [gitui-linux-aarch64.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-linux-aarch64.tar.gz) +* [gitui-linux-arm.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-linux-arm.tar.gz) +* [gitui-linux-armv7.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-linux-armv7.tar.gz) +* [gitui-linux-x86_64.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-linux-x86_64.tar.gz) +* [gitui-mac.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-mac.tar.gz) +* [gitui-win.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-mac.tar.gz) +* [gitui-win.msi](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-mac.tar.gz) + diff --git a/README.md b/README.md index b6b3e15ebd..f0e619b50e 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,7 @@ conda install -c conda-forge gitui Binaries available for: -### Linux +#### Linux - gitui-linux-x86_64.tar.gz (linux musl statically linked) - gitui-linux-aarch64.tar.gz (linux on 64 bit arm) @@ -203,16 +203,18 @@ Binaries available for: All contain a single binary file -### macOS +#### macOS - gitui-mac.tar.gz (intel Mac, uses Rosetta on Apple silicon, single binary) - -### Windows +#### Windows - gitui-win.tar.gz (single 64bit binary) - gitui-win.msi (64bit Installer package) +### Nightly Builds + +see [NIGHTLIES.md](./NIGHTLIES.md) ## 7. Build [Top ▲](#table-of-contents) From 3fc42558032ef38ae3a8a22d34731ee749232bfd Mon Sep 17 00:00:00 2001 From: extrawurst Date: Wed, 27 Mar 2024 17:18:12 +0000 Subject: [PATCH 08/10] try fixing windows --- .github/workflows/nightly.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 96c8cdab0e..cdcd2030de 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,6 +1,8 @@ name: Build Nightly Releases on: + push: + branches: [ '*' ] schedule: - cron: '0 3 * * *' workflow_dispatch: @@ -115,5 +117,5 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} run: | - aws s3 cp ./release/gitui.msi $AWS_BUCKET_NAME - aws s3 cp ./release/gitui-win.tar.gz $AWS_BUCKET_NAME + aws s3 cp ./release/gitui.msi $env.AWS_BUCKET_NAME + aws s3 cp ./release/gitui-win.tar.gz $env.AWS_BUCKET_NAME From 3f3b46990819adaf48ab725410cbc6902854bd17 Mon Sep 17 00:00:00 2001 From: extrawurst Date: Wed, 27 Mar 2024 17:20:17 +0000 Subject: [PATCH 09/10] finalize win --- .github/workflows/nightly.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index cdcd2030de..ed62038f79 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,8 +1,6 @@ name: Build Nightly Releases on: - push: - branches: [ '*' ] schedule: - cron: '0 3 * * *' workflow_dispatch: @@ -117,5 +115,5 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }} AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} run: | - aws s3 cp ./release/gitui.msi $env.AWS_BUCKET_NAME - aws s3 cp ./release/gitui-win.tar.gz $env.AWS_BUCKET_NAME + aws s3 cp ./release/gitui.msi $env:AWS_BUCKET_NAME + aws s3 cp ./release/gitui-win.tar.gz $env:AWS_BUCKET_NAME From c4bdfc63e8575be69c6bfd661940b29942dbb2cd Mon Sep 17 00:00:00 2001 From: extrawurst Date: Wed, 27 Mar 2024 17:28:03 +0000 Subject: [PATCH 10/10] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45991a09c4..465176b034 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased ### Added +* provide nightly builds (see [NIGHTLIES.md](./NIGHTLIES.md)) ([#2083](https://github.com/extrawurst/gitui/issues/2083)) * sign commits using openpgp [[@hendrikmaus](https://github.com/hendrikmaus)] ([#97](https://github.com/extrawurst/gitui/issues/97)) ### Changed