From 96bede6f7a9f70ac8ff71d634b93f25144f3aea1 Mon Sep 17 00:00:00 2001 From: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com> Date: Mon, 24 Feb 2020 18:02:34 +0100 Subject: [PATCH] CI - Artifacts for faster testing (#702) Cleanup Workflow Job is set to 14 days --- .ci/ci_build.sh | 2 +- .github/workflows/cleanup.yml | 14 +++ .github/workflows/pull-request.yml | 110 ++++++++++++++++++ .github/workflows/{ci.yml => push-master.yml} | 33 ++---- .vscode/settings.json | 1 - src/hyperiond/CMakeLists.txt | 7 +- version | 2 +- 7 files changed, 143 insertions(+), 26 deletions(-) create mode 100644 .github/workflows/cleanup.yml create mode 100644 .github/workflows/pull-request.yml rename .github/workflows/{ci.yml => push-master.yml} (62%) delete mode 100644 .vscode/settings.json diff --git a/.ci/ci_build.sh b/.ci/ci_build.sh index 5ee618f7..f1e1a1fe 100755 --- a/.ci/ci_build.sh +++ b/.ci/ci_build.sh @@ -30,7 +30,7 @@ if [[ "$CI_NAME" == 'osx' || "$CI_NAME" == 'darwin' ]]; then mkdir build || exit 1 cd build cmake -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ../ || exit 2 - make -j $(sysctl -n hw.ncpu) || exit 3 # Notes: The package creation is currently not supported because of strange errors. + make -j $(sysctl -n hw.ncpu) package || exit 3 cd ${CI_BUILD_DIR} && source /${CI_BUILD_DIR}/test/testrunner.sh || exit 4 exit 0; exit 1 || { echo "---> Hyperion compilation failed! Abort"; exit 5; } diff --git a/.github/workflows/cleanup.yml b/.github/workflows/cleanup.yml new file mode 100644 index 00000000..5bc5512f --- /dev/null +++ b/.github/workflows/cleanup.yml @@ -0,0 +1,14 @@ +name: Clean artifacts + +on: + schedule: + - cron: '0 0 * * *' + +jobs: + clean: + runs-on: ubuntu-latest + steps: + - name: cleanup + uses: glassechidna/artifact-cleaner@master + with: + minimumAge: 3024000 # all artifacts at least 14 days old diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 00000000..8352948d --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,110 @@ +name: Hyperion PR Build +on: + pull_request: + branches: + - master + +jobs: + +###################### +###### Linux ######### +###################### + + Linux: + name: ${{ matrix.dockerName }} + runs-on: ubuntu-latest + strategy: + matrix: + dockerTag: [ amd64, i386, armv6hf, armv7hf, aarch64 ] + include: + - dockerTag: amd64 + dockerName: Debian Stretch (AMD64) + platform: x11 + - dockerTag: i386 + dockerName: Debian Stretch (i386) + platform: x11 + - dockerTag: armv6hf + dockerName: Debian Stretch (Raspberry Pi v1 & ZERO) + platform: rpi + - dockerTag: armv7hf + dockerName: Debian Stretch (Raspberry Pi 2 & 3) + platform: rpi + - dockerTag: aarch64 + dockerName: Debian Stretch (Generic AARCH64) + platform: amlogic + + steps: + - uses: actions/checkout@v1 + with: + submodules: true + + # Append PR number to version + - name: Append PR number to version + shell: bash + run: 'echo -n -PR#${{ github.event.pull_request.number }} >> version' + + # Build packages + - name: Build packages + env: + DOCKER_TAG: ${{ matrix.dockerTag }} + DOCKER_NAME: ${{ matrix.dockerName }} + PLATFORM: ${{ matrix.platform }} + shell: bash + run: ./.ci/ci_build.sh + + # Collecting deployable artifacts + - name: Collecting deployable artifacts + shell: bash + run: | + mkdir -p ${{ matrix.dockerTag }} + mv deploy/Hyperion-* ${{ matrix.dockerTag }} + + # Upload artifacts + - name: Upload artifacts + uses: actions/upload-artifact@v1 + with: + name: ${{ matrix.dockerTag }}.zip + path: ${{ matrix.dockerTag }} + +###################### +###### macOS ######### +###################### + + macOS: + name: macOS + runs-on: macos-latest + steps: + - uses: actions/checkout@v1 + with: + submodules: true + + # Append PR number to version + - name: Append PR number to version + shell: bash + run: echo -n "-PR#${{ github.event.pull_request.number }}" >> version + + # Install dependencies + - name: Install dependencies + shell: bash + run: ./.ci/ci_install.sh + + # Build packages + - name: Build packages + env: + PLATFORM: osx + shell: bash + run: ./.ci/ci_build.sh + + # Collecting deployable artifacts + - name: Collecting deployable artifacts + shell: bash + run: | + mkdir -p macOS + mv build/Hyperion-* macOS + + # Upload artifacts + - name: Upload artifacts + uses: actions/upload-artifact@v1 + with: + name: macOS.zip + path: macOS diff --git a/.github/workflows/ci.yml b/.github/workflows/push-master.yml similarity index 62% rename from .github/workflows/ci.yml rename to .github/workflows/push-master.yml index 6116a8e2..9e14143c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/push-master.yml @@ -1,5 +1,12 @@ -name: GitHub Actions -on: [push, pull_request] +name: Hyperion CI Build +on: + push: + branches: + - master + +###################### +###### Linux ######### +###################### jobs: Linux: @@ -39,15 +46,9 @@ jobs: shell: bash run: ./.ci/ci_build.sh - # create/update github release (replacement for Microsoft Azure after the beta phase) - -# - name: Create/Update GitHub release -# if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') && success() -# uses: docker://softprops/action-gh-release -# with: -# files: deploy/Hyperion.NG-* -# env: -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +###################### +###### macOS ######### +###################### macOS: name: macOS @@ -68,13 +69,3 @@ jobs: PLATFORM: osx shell: bash run: ./.ci/ci_build.sh - - # create/update github release (replacement for Microsoft Azure after the beta phase) - -# - name: Create/Update GitHub release -# if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') && success() -# uses: docker://softprops/action-gh-release -# with: -# files: deploy/Hyperion.NG-* -# env: -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 9e26dfee..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/hyperiond/CMakeLists.txt b/src/hyperiond/CMakeLists.txt index 2f082e10..dd68dc70 100644 --- a/src/hyperiond/CMakeLists.txt +++ b/src/hyperiond/CMakeLists.txt @@ -256,5 +256,8 @@ if(CMAKE_HOST_UNIX) install(CODE "FILE (REMOVE ${CMAKE_BINARY_DIR}/symlink_hyperiond )" COMPONENT "${PLATFORM}" ) endif(CMAKE_HOST_UNIX) -# Copy dependencies -InstallDependencies("hyperiond" ${PLATFORM}) + +# Copy dependencies (not for OSX) +if (NOT ENABLE_OSX) + InstallDependencies("hyperiond" ${PLATFORM}) +endif () diff --git a/version b/version index 453787a2..c87d97a9 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.0.0-alpha.2 +2.0.0-alpha.2 \ No newline at end of file