Add github CI and builder scripts (dockcross)

Add github CI and builder scripts (dockcross)

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
This commit is contained in:
Bensuperpc 2021-07-07 02:15:22 +02:00
parent d5007d4694
commit 39c6c57bf3
10 changed files with 131 additions and 0 deletions

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

@ -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

30
.github/workflows/main.yml vendored Normal file

@ -0,0 +1,30 @@
name: tmux-mem-cpu-load
on:
push:
branches:
- '*'
paths-ignore:
- '**/README.md'
pull_request:
branches:
- '*'
workflow_dispatch:
jobs:
image:
name: build ${{ matrix.arch_name }} ${{ matrix.build_type }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arch_name: [android-arm, android-arm64, android-x86, android-x86_64, web-wasm, 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, windows-static-x64, windows-static-x64-posix, windows-static-x86, windows-shared-x64, windows-shared-x64-posix, windows-shared-x86, 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 }}

2
.gitignore vendored

@ -57,3 +57,5 @@ Thumbs.db
*.swp *.swp
*.swo *.swo
*~ *~
dockcross-*
build-*

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

@ -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

@ -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
}

@ -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

@ -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

@ -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