Merge pull request #67 from bensuperpc/multi-arch-ci
Add Github CI and Multi-arch builder
This commit is contained in:
commit
31768a203b
9
.github/dependabot.yml
vendored
Normal file
9
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Set update schedule for GitHub Actions
|
||||||
|
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
# Check for updates to GitHub Actions every weekday
|
||||||
|
interval: "daily"
|
22
.github/workflows/expired.yml
vendored
Normal file
22
.github/workflows/expired.yml
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
name: 'Close stale issues and PRs'
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 */8 * * *'
|
||||||
|
jobs:
|
||||||
|
stale:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/stale@v3
|
||||||
|
with:
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
exempt-issue-milestones: 'future,alpha,beta,release'
|
||||||
|
exempt-pr-milestones: 'bugfix,improvement'
|
||||||
|
exempt-all-pr-assignees: true
|
||||||
|
stale-issue-message: 'This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 15 days.'
|
||||||
|
stale-pr-message: 'This PR is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 15 days.'
|
||||||
|
close-issue-message: 'This issue was closed because it has been stalled for 30 days with no activity.'
|
||||||
|
close-pr-message: 'This PR was closed because it has been stalled for 30 days with no activity.'
|
||||||
|
days-before-issue-stale: 120
|
||||||
|
days-before-pr-stale: 120
|
||||||
|
days-before-issue-close: 30
|
||||||
|
days-before-pr-close: 30
|
33
.github/workflows/main.yml
vendored
Normal file
33
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
name: tmux-mem-cpu-load
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- '*'
|
||||||
|
paths-ignore:
|
||||||
|
- '**/README.md'
|
||||||
|
- '**/README.rst'
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- '*'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
image:
|
||||||
|
name: build ${{ matrix.arch_name }} ${{ matrix.build_type }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
# Disable: unsupported system: android-arm, android-arm64, android-x86, android-x86_64, web-wasm,
|
||||||
|
# Disable: missing header in linux(GCC): windows-static-x64, windows-static-x64-posix, windows-static-x86, windows-shared-x64, windows-shared-x64-posix, windows-shared-x86,
|
||||||
|
arch_name: [linux-arm64, linux-arm64-musl, linux-armv5, linux-armv5-musl, linux-armv6, linux-armv6-musl, linux-armv7, linux-armv7a, linux-armv7l-musl, linux-x64-clang, linux-s390x, linux-x64, linux-x86, linux-mips, linux-ppc64le, manylinux1-x64, manylinux1-x86, manylinux2010-x64, manylinux2010-x86, manylinux2014-x64, manylinux2014-x86, manylinux2014-aarch64, linux-riscv64, linux-riscv32]
|
||||||
|
build_type: [Release, Debug]
|
||||||
|
steps:
|
||||||
|
- name: "📥 Checkout Code"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: 'recursive'
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: "🛠️ build"
|
||||||
|
run: ./builder/cmake.sh ${{ matrix.arch_name }}:latest -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
62
.github/workflows/release.yml
vendored
Normal file
62
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
name: "tagged-release"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v[0-9]+.[0-9]+.[0-9]+*"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: build ${{ matrix.arch_name }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
# Disable: unsupported system: android-arm, android-arm64, android-x86, android-x86_64, web-wasm,
|
||||||
|
# Disable: missing header in linux(GCC): windows-static-x64, windows-static-x64-posix, windows-static-x86, windows-shared-x64, windows-shared-x64-posix, windows-shared-x86,
|
||||||
|
arch_name: [linux-arm64, linux-arm64-musl, linux-armv5, linux-armv5-musl, linux-armv6, linux-armv6-musl, linux-armv7, linux-armv7a, linux-armv7l-musl, linux-x64-clang, linux-s390x, linux-x64, linux-x86, linux-mips, linux-ppc64le, manylinux1-x64, manylinux1-x86, manylinux2010-x64, manylinux2010-x86, manylinux2014-x64, manylinux2014-x86, manylinux2014-aarch64, linux-riscv64, linux-riscv32]
|
||||||
|
steps:
|
||||||
|
- name: "📥 Checkout Code"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: 'recursive'
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: "🛠️ cmake"
|
||||||
|
run: ./builder/cmake.sh ${{ matrix.arch_name }}:latest -DCMAKE_BUILD_TYPE=Release
|
||||||
|
- name: "✅ checksum"
|
||||||
|
run: cd build-${{ matrix.arch_name }} && find . -maxdepth 1 -name "tmux-mem-cpu-load*" | xargs sha256sum > checksum.sha256
|
||||||
|
- name: "🗜️ compress"
|
||||||
|
run: cd build-${{ matrix.arch_name }} && find . -maxdepth 1 -name "tmux-mem-cpu-load*" -o -name "*.sha256" | XZ_OPT=-e9 tar -cJf tmux-mem-cpu-load-${{ matrix.arch_name }}.tar.xz -T - && mv tmux-mem-cpu-load-${{ matrix.arch_name }}.tar.xz ..
|
||||||
|
- name: "💾 save binaries"
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: bin-artifact
|
||||||
|
path: tmux-mem-cpu-load-${{ matrix.arch_name }}.tar.xz
|
||||||
|
retention-days: 1
|
||||||
|
release:
|
||||||
|
name: release
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
steps:
|
||||||
|
- name: "📥 Checkout Code"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: 'recursive'
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: get artifact
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: bin-artifact
|
||||||
|
path: .
|
||||||
|
- name: "✅ checksum"
|
||||||
|
run: find . -maxdepth 1 -name "*.tar.xz" | xargs sha256sum > checksum_all.sha256
|
||||||
|
- uses: "marvinpinto/action-automatic-releases@latest"
|
||||||
|
name: "📤 upload to github"
|
||||||
|
with:
|
||||||
|
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
prerelease: false
|
||||||
|
files: |
|
||||||
|
LICENSE
|
||||||
|
*.tar.xz
|
||||||
|
*.sha256
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -57,3 +57,5 @@ Thumbs.db
|
|||||||
*.swp
|
*.swp
|
||||||
*.swo
|
*.swo
|
||||||
*~
|
*~
|
||||||
|
dockcross-*
|
||||||
|
build-*
|
||||||
|
@ -174,7 +174,7 @@ Contributions from:
|
|||||||
* Compilenix <Compilenix@compilenix.org>
|
* Compilenix <Compilenix@compilenix.org>
|
||||||
* jodavies <jodavies1010@gmail.com>
|
* jodavies <jodavies1010@gmail.com>
|
||||||
* `@nhdaly`_ (Nathan Daly) <nhdaly@gmail.com>
|
* `@nhdaly`_ (Nathan Daly) <nhdaly@gmail.com>
|
||||||
|
* bensuperpc <bensuperpc@gmail.com>
|
||||||
|
|
||||||
.. _tmux: http://tmux.sourceforge.net/
|
.. _tmux: http://tmux.sourceforge.net/
|
||||||
.. _CMake: http://www.cmake.org
|
.. _CMake: http://www.cmake.org
|
||||||
|
6
builder/cmake.sh
Executable file
6
builder/cmake.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
source $(dirname "$0")/functions/cmake_fn.sh
|
||||||
|
|
||||||
|
cmake_build $@
|
11
builder/cmake_all.sh
Executable file
11
builder/cmake_all.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
curl https://raw.githubusercontent.com/dockcross/dockcross/master/Makefile -o dockcross-Makefile
|
||||||
|
make -f dockcross-Makefile display_images
|
||||||
|
|
||||||
|
source $(dirname "$0")/functions/cmake_fn.sh
|
||||||
|
|
||||||
|
for image in $(make -f dockcross-Makefile display_images); do
|
||||||
|
cmake_build $image $@
|
||||||
|
done
|
19
builder/functions/cmake_fn.sh
Executable file
19
builder/functions/cmake_fn.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
cmake_build () {
|
||||||
|
local image=$1
|
||||||
|
local build_file=build-${image%:*}
|
||||||
|
shift 1
|
||||||
|
local cmake_arg=$@
|
||||||
|
echo "cmake arg: $cmake_arg"
|
||||||
|
|
||||||
|
echo "Pulling dockcross/$image"
|
||||||
|
docker pull dockcross/$image
|
||||||
|
echo "Make script dockcross-$image"
|
||||||
|
docker run --rm dockcross/$image > ./dockcross-$image
|
||||||
|
chmod +x ./dockcross-$image
|
||||||
|
echo "Build $build_file"
|
||||||
|
./dockcross-$image cmake -B$build_file -H. -GNinja $cmake_arg
|
||||||
|
./dockcross-$image ninja -C$build_file
|
||||||
|
}
|
15
builder/functions/makefile_fn.sh
Executable file
15
builder/functions/makefile_fn.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
makefile_build () {
|
||||||
|
local image=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
echo "Pulling dockcross/$image"
|
||||||
|
docker pull dockcross/$image
|
||||||
|
echo "Make script dockcross-$image"
|
||||||
|
docker run --rm dockcross/$image > ./dockcross-$image
|
||||||
|
chmod +x ./dockcross-$image
|
||||||
|
echo "Build..."
|
||||||
|
./dockcross-$image bash -c 'make CXX=$CXX CC=$CC AR=$AR AS=$AS CPP=$CPP FC=$FC'
|
||||||
|
}
|
6
builder/makefile.sh
Executable file
6
builder/makefile.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
source $(dirname "$0")/functions/makefile_fn.sh
|
||||||
|
|
||||||
|
makefile_build $@
|
11
builder/makefile_all.sh
Executable file
11
builder/makefile_all.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
curl https://raw.githubusercontent.com/dockcross/dockcross/master/Makefile -o dockcross-Makefile
|
||||||
|
make -f dockcross-Makefile display_images
|
||||||
|
|
||||||
|
source $(dirname "$0")/functions/makefile_fn.sh
|
||||||
|
|
||||||
|
for image in $(make -f dockcross-Makefile display_images); do
|
||||||
|
makefile_build $image $@
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user