diff --git a/.github/workflows/build-beta-images.yml b/.github/workflows/build-beta-images.yml index 3201637a74..cd023a75f6 100644 --- a/.github/workflows/build-beta-images.yml +++ b/.github/workflows/build-beta-images.yml @@ -1,4 +1,4 @@ -name: Build beta images +name: Build Beta Images on: workflow_dispatch: diff --git a/.github/workflows/build-beta-kernel.yml b/.github/workflows/build-beta-kernel.yml index eac47668ca..715d7c472d 100644 --- a/.github/workflows/build-beta-kernel.yml +++ b/.github/workflows/build-beta-kernel.yml @@ -1,4 +1,4 @@ -name: Build beta kernel packages +name: Build Beta Kernel on: schedule: diff --git a/.github/workflows/build-cache.yml b/.github/workflows/build-cache.yml index ceaf61f211..d95cf0ff61 100644 --- a/.github/workflows/build-cache.yml +++ b/.github/workflows/build-cache.yml @@ -1,4 +1,4 @@ -name: Build rootfs cache +name: Build Rootfs Cache on: workflow_dispatch: diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index ea6c852c28..98d8d8268a 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -1,4 +1,4 @@ -name: Build Docker image +name: Build Docker Image on: # Trigger the workflow on push but only for the main branch push: @@ -30,7 +30,7 @@ jobs: run: | sed -i "s/-it --rm/-i --rm/" config/templates/config-docker.conf touch .ignore_changes - ./compile.sh docker JUST_INIT="yes" + ./compile.sh docker BOARD=virtual-qemu BRANCH=current RELEASE=focal BUILD_MINIMAL=yes BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=no COMPRESS_OUTPUTIMAGE=no REPOSITORY_INSTALL="u-boot,kernel,armbian-config,armbian-firmware" JUST_INIT=yes docker tag armbian:$(cat VERSION) ghcr.io/armbian/build:$(cat VERSION) - name: Push Docker image diff --git a/.github/workflows/build-kernel-on-merge-request.yml b/.github/workflows/build-kernel-on-merge-request.yml index 2d7f7211d0..b6c613fec7 100644 --- a/.github/workflows/build-kernel-on-merge-request.yml +++ b/.github/workflows/build-kernel-on-merge-request.yml @@ -1,4 +1,4 @@ -name: Lint scripts and build kernel +name: Lint Scripts And Build Kernel on: workflow_dispatch: diff --git a/.github/workflows/build-single.yml b/.github/workflows/build-single.yml index 12c6bc416e..c547e0b43d 100644 --- a/.github/workflows/build-single.yml +++ b/.github/workflows/build-single.yml @@ -1,4 +1,4 @@ -name: Build selected image +name: Build Selected Image on: diff --git a/.github/workflows/build-stable-images.yml b/.github/workflows/build-stable-images.yml index 4b63a98bee..fc20bfd2e4 100644 --- a/.github/workflows/build-stable-images.yml +++ b/.github/workflows/build-stable-images.yml @@ -1,4 +1,4 @@ -name: Stable images +name: Build Stable Images on: diff --git a/.github/workflows/build-test-image-docker.yml b/.github/workflows/build-test-image-docker.yml index a61280b9a5..5575c9da73 100644 --- a/.github/workflows/build-test-image-docker.yml +++ b/.github/workflows/build-test-image-docker.yml @@ -1,19 +1,23 @@ -name: Build image with CI Docker image +name: Build With Docker Image on: - # Trigger the workflow on push but only for the main branch - #push: - # branches: - # - master - # Trigger manually + # Trigger after Docker image was built + workflow_run: + workflows: ["Build Docker image"] + types: + - completed + # Trigger manually workflow_dispatch: jobs: - - Build: - - name: Build image with CI Docker image - runs-on: ubuntu-latest + gradle: + strategy: + fail-fast: false + matrix: + release: [focal,buster,bullseye,hirsute,jammy] + branch: [current] if: ${{ github.repository_owner == 'Armbian' }} + name: Variant + runs-on: ubuntu-latest steps: - name: Checkout repository @@ -35,12 +39,45 @@ jobs: - name: Sync run: | + mkdir -p build/userpatches sudo cp scripts/configs/* build/userpatches/ - name: Pull Docker image run: | - docker pull ghcr.io/armbian/build:$(cat build/VERSION) + sudo docker pull ghcr.io/armbian/build:$(cat build/VERSION) + + - name: Build Qemu virtual image + run: | + cd build + + # we need to fix this once but fake toolchain will prevent downloading it each time + mkdir -p cache/toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu + touch cache/toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/.download-complete + mkdir -p cache/toolchain/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi + touch cache/toolchain/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi/.download-complete + mkdir -p cache/toolchain/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux + touch cache/toolchain/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/.download-complete + mkdir -p cache/toolchain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux + touch cache/toolchain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/.download-complete + mkdir -p cache/toolchain/gcc-linaro-arm-none-eabi-4.8-2014.04_linux + touch cache/toolchain/gcc-linaro-arm-none-eabi-4.8-2014.04_linux/.download-complete + mkdir -p cache/toolchain/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu + touch cache/toolchain/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/.download-complete + mkdir -p cache/toolchain/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf + touch cache/toolchain/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/.download-complete + mkdir -p cache/toolchain/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu + touch cache/toolchain/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/.download-complete + mkdir -p cache/toolchain/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf + touch cache/toolchain/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/.download-complete + + sed -i "s/-it --rm/-i --rm/" userpatches/config-docker.conf sed -i "s/COMPRESS_OUTPUTIMAGE=.*/COMPRESS_OUTPUTIMAGE=\"no\"/" userpatches/lib.config - ./compile.sh docker BOARD=virtual-qemu BRANCH=current RELEASE=focal BUILD_MINIMAL=yes BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=no COMPRESS_OUTPUTIMAGE=no REPOSITORY_INSTALL="u-boot,kernel,armbian-config,armbian-firmware" + ./compile.sh docker BETA=yes EXPERT=yes BOARD=virtual-qemu BRANCH=${{ matrix.branch }} RELEASE=${{ matrix.release }} BUILD_MINIMAL=no BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=prebuilt COMPRESS_OUTPUTIMAGE=no IGNORE_UPDATES=yes + +# - name: Upload artefacts +# uses: actions/upload-artifact@v2 +# with: +# name: virtual-qemu +# path: build/output/images/* diff --git a/.github/workflows/build-u-boot.yml b/.github/workflows/build-u-boot.yml index 7acf4443ab..427e64892e 100644 --- a/.github/workflows/build-u-boot.yml +++ b/.github/workflows/build-u-boot.yml @@ -1,4 +1,4 @@ -name: Build beta u-boot packages +name: Build Beta U-boot on: workflow_dispatch: diff --git a/.github/workflows/forked-helper.yml b/.github/workflows/forked-helper.yml index 315cac2da1..2b64835603 100644 --- a/.github/workflows/forked-helper.yml +++ b/.github/workflows/forked-helper.yml @@ -1,4 +1,4 @@ -name: Forked helper +name: Forked Helper on: push: diff --git a/.github/workflows/maintain.yml b/.github/workflows/maintain.yml index bd3fb355ba..9904e15c7f 100644 --- a/.github/workflows/maintain.yml +++ b/.github/workflows/maintain.yml @@ -1,4 +1,4 @@ -name: Maintain runners +name: Maintain Runners on: workflow_dispatch: @@ -75,17 +75,9 @@ jobs: cd build [[ ! -f .ignore_changes ]] && sudo touch .ignore_changes sudo rm -rf cache/sources - - if [[ $(curl -s http://ifconfig.me) == "93.103.15.56" ]]; then - sudo rm -rf cache/toolchain - sudo mkdir -p cache/toolchain cache/rootfs || true - ! sudo mountpoint -q cache/toolchain && sudo mount nas:/tank/armbian/toolchain.armbian.com cache/toolchain -o rsize=32768,wsize=32768,timeo=5,retrans=2,actimeo=60,retry=15 || true - ! sudo mountpoint -q cache/rootfs && sudo mount nas:/tank/armbian/dl.armbian.com/_rootfs cache/rootfs -o rsize=32768,wsize=32768,timeo=5,retrans=2,actimeo=60,retry=15 || true - fi - ./compile.sh KERNEL_ONLY="yes" CLEAN_LEVEL="sources,alldebs" BOARD="bananapim64" BRANCH="current" KERNEL_CONFIGURE="no" USE_TORRENT="yes" REPOSITORY_INSTALL="kernel,u-boot" sudo rm -rf output/debs sudo rm -rf output/debs-beta - + Caches: name: Sync & test cache integrity @@ -103,7 +95,7 @@ jobs: Check: name: Checks needs: [ Caches ] - runs-on: [self-hosted, Linux, x64, images] + runs-on: [self-hosted, Linux, x64, cache] if: ${{ github.repository_owner == 'armbian' }} timeout-minutes: 480 strategy: @@ -146,8 +138,18 @@ jobs: path: build ref: nightly clean: false - + + - name: Import GPG key + uses: crazy-max/ghaction-import-gpg@v3 + with: + gpg-private-key: ${{ secrets.GPG_KEY1 }} + passphrase: ${{ secrets.GPG_PASSPHRASE1 }} + workdir: scripts + git-user-signingkey: true + - name: Sync or mount rootfs + env: + GPG_PASS: ${{ secrets.GPG_PASSPHRASE1 }} run: | # Test compressed file integrity @@ -161,37 +163,11 @@ jobs: fi ls -l build/cache/rootfs/ sudo lz4 -t build/cache/rootfs/${CHUNK} - - Docker-arm64: - - name: Docker image on arm64 - runs-on: [self-hosted, Linux, ARM64] - if: ${{ github.repository_owner == 'Armbian' }} - steps: - - name: Fix permissions - run: | - [[ -d build/.git ]] && sudo chown -R $USER:$USER build/.git || true - - name: Checkout Armbian build script - uses: actions/checkout@v2 - with: - fetch-depth: 0 - repository: armbian/build - path: build - ref: nightly - clean: false - - name: Build Docker image - run: | - cd build - sed -i "s/-it --rm/-i --rm/" config/templates/config-docker.conf - [[ ! -f .ignore_changes ]] && sudo touch .ignore_changes - ./compile.sh dockerpurge KERNEL_ONLY="yes" BOARD="bananapi" BRANCH="current" KERNEL_CONFIGURE="no" \ - USE_TORRENT="yes" REPOSITORY_INSTALL="kernel" 'prepare_host' - sed -i "s/-it --rm/-i --rm/" userpatches/config-docker.conf - + echo "${GPG_PASS}" | sudo -H -u ${USER} bash -c "gpg --passphrase-fd 0 --armor --detach-sign --pinentry-mode loopback --batch --yes build/cache/rootfs/${CHUNK}" || exit 1 Finish: name: Finish - needs: [Check,Docker-arm64] + needs: [Check] runs-on: [self-hosted, Linux, small] if: ${{ github.repository_owner == 'Armbian' }} steps: diff --git a/.github/workflows/update-repository.yml b/.github/workflows/update-repository.yml index 101df3d29a..6b2dbc5abc 100644 --- a/.github/workflows/update-repository.yml +++ b/.github/workflows/update-repository.yml @@ -1,4 +1,4 @@ -name: Update package repository +name: Update Repository on: workflow_dispatch: