mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
428 lines
17 KiB
YAML
428 lines
17 KiB
YAML
name: Build train
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
|
|
##########################################################################################
|
|
# #
|
|
# cancels previous runs associated with a workflow #
|
|
# #
|
|
##########################################################################################
|
|
|
|
Cancel:
|
|
if: ${{ github.repository_owner == 'Armbian' }}
|
|
runs-on: small
|
|
steps:
|
|
- uses: n1hility/cancel-previous-runs@v2
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Merge master into nighly image from which we build packages #
|
|
# #
|
|
##########################################################################################
|
|
|
|
Merge:
|
|
name: Merging
|
|
needs: Cancel
|
|
if: ${{ github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/merge-from-branch.yml@master
|
|
|
|
with:
|
|
branch: 'nightly'
|
|
runner: small
|
|
|
|
secrets:
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Check for changes in patches, kernel config and upstream #
|
|
# #
|
|
##########################################################################################
|
|
|
|
Check:
|
|
name: Checking
|
|
needs: Merge
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/check-for-changes.yml@master
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Build changed kernel packages #
|
|
# #
|
|
##########################################################################################
|
|
|
|
Kernel:
|
|
needs: Check
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/build-kernel.yml@master
|
|
|
|
with:
|
|
uploading: true
|
|
runner: fast
|
|
reference: nightly
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Build changed desktop packages #
|
|
# #
|
|
##########################################################################################
|
|
|
|
Desktop:
|
|
needs: Check
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/build-desktop.yml@master
|
|
|
|
with:
|
|
uploading: true
|
|
runner: small
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Build u-boot and board support packages #
|
|
# #
|
|
##########################################################################################
|
|
|
|
legacy:
|
|
needs: Check
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/build-u-boot-with-docker.yml@master
|
|
|
|
with:
|
|
|
|
runner: "small"
|
|
include: 'grep legacy | '
|
|
exclude: ''
|
|
uploading: false
|
|
destref: 'nightly'
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
SSH_KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
current:
|
|
needs: Check
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/build-u-boot-with-docker.yml@master
|
|
|
|
with:
|
|
|
|
runner: "small"
|
|
include: 'grep current | '
|
|
exclude: ''
|
|
uploading: false
|
|
destref: 'nightly'
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
SSH_KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
|
|
edge:
|
|
needs: Check
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/build-u-boot-with-docker.yml@master
|
|
|
|
with:
|
|
|
|
runner: "small"
|
|
include: 'grep edge | '
|
|
exclude: ''
|
|
uploading: false
|
|
destref: 'nightly'
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
SSH_KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Store build hashes for future comparission #
|
|
# #
|
|
##########################################################################################
|
|
|
|
Deploy:
|
|
needs: [Kernel,Desktop,legacy,current,edge]
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/deploy.yml@master
|
|
|
|
with:
|
|
|
|
uploading: true
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
apt-armbian-com:
|
|
name: "Stable repository"
|
|
needs: [Deploy]
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/update-repository.yml@master
|
|
|
|
with:
|
|
KEY_ID: 'repository'
|
|
|
|
secrets:
|
|
KEY_REPOSITORY: ${{ secrets.KEY_REPOSITORY }}
|
|
USER_REPOSITORY: ${{ secrets.USER_REPOSITORY }}
|
|
HOST_REPOSITORY: ${{ secrets.HOST_REPOSITORY }}
|
|
KNOWN_HOSTS_REPOSITORY: ${{ secrets.KNOWN_HOSTS_REPOSITORY }}
|
|
|
|
beta-armbian-com:
|
|
name: "Nighly repository"
|
|
needs: [Deploy]
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/update-repository.yml@master
|
|
|
|
with:
|
|
KEY_ID: 'repository-beta'
|
|
|
|
secrets:
|
|
KEY_REPOSITORY: ${{ secrets.KEY_REPOSITORY_BETA }}
|
|
USER_REPOSITORY: ${{ secrets.USER_REPOSITORY }}
|
|
HOST_REPOSITORY: ${{ secrets.HOST_REPOSITORY }}
|
|
KNOWN_HOSTS_REPOSITORY: ${{ secrets.KNOWN_HOSTS_REPOSITORY }}
|
|
|
|
sync-servers:
|
|
name: "Sync servers"
|
|
needs: [apt-armbian-com,beta-armbian-com]
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/sync-servers.yml@master
|
|
|
|
with:
|
|
KEY_ID: 'upload'
|
|
|
|
secrets:
|
|
KEY_UPLOAD: ${{ secrets.KEY_UPLOAD }}
|
|
USER_REPOSITORY: ${{ secrets.USER_REPOSITORY }}
|
|
HOST_REPOSITORY: ${{ secrets.HOST_REPOSITORY }}
|
|
KNOWN_HOSTS_REPOSITORY: ${{ secrets.KNOWN_HOSTS_REPOSITORY }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Build x86 CLI images #
|
|
# #
|
|
##########################################################################################
|
|
|
|
x86-cli-images:
|
|
needs: [apt-armbian-com,beta-armbian-com,sync-servers]
|
|
uses: armbian/scripts/.github/workflows/build-with-docker.yml@master
|
|
|
|
with:
|
|
|
|
variant: 'cli:beta'
|
|
runner: "small"
|
|
sourcerepo: 'nightly'
|
|
part: 1
|
|
of: 1
|
|
include: 'grep uefi-x86 | '
|
|
exclude: ''
|
|
uploading: false
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
SSH_KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Build x86 desktop images #
|
|
# #
|
|
##########################################################################################
|
|
|
|
x86-desktop-images:
|
|
needs: [apt-armbian-com,beta-armbian-com,sync-servers]
|
|
uses: armbian/scripts/.github/workflows/build-with-docker.yml@master
|
|
|
|
with:
|
|
|
|
variant: 'desktop:beta'
|
|
runner: "big"
|
|
sourcerepo: 'nightly'
|
|
part: 1
|
|
of: 1
|
|
include: 'grep uefi-x86 | '
|
|
exclude: ''
|
|
uploading: false
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
SSH_KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Build CLI images #
|
|
# #
|
|
##########################################################################################
|
|
|
|
cli-images:
|
|
needs: [apt-armbian-com,beta-armbian-com,sync-servers]
|
|
uses: armbian/scripts/.github/workflows/build-with-docker.yml@master
|
|
|
|
with:
|
|
|
|
variant: 'cli:beta'
|
|
runner: "small"
|
|
sourcerepo: 'nightly'
|
|
part: 1
|
|
of: 1
|
|
include: ''
|
|
exclude: 'grep -v uefi-x86 | '
|
|
uploading: false
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
SSH_KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Build desktop images #
|
|
# #
|
|
##########################################################################################
|
|
|
|
desktop-images:
|
|
needs: [apt-armbian-com,beta-armbian-com,sync-servers]
|
|
uses: armbian/scripts/.github/workflows/build-with-docker.yml@master
|
|
|
|
with:
|
|
variant: 'desktop:beta'
|
|
runner: "big"
|
|
sourcerepo: 'nightly'
|
|
part: 1
|
|
of: 1
|
|
include: ''
|
|
exclude: 'grep -v uefi-x86 | '
|
|
uploading: false
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
SSH_KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Bump with version if compilation succeeded #
|
|
# #
|
|
##########################################################################################
|
|
|
|
Bump:
|
|
needs: [x86-cli-images,x86-desktop-images,cli-images,desktop-images]
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/update-version.yml@master
|
|
|
|
with:
|
|
|
|
uploading: true
|
|
|
|
secrets:
|
|
GPG_KEY1: ${{ secrets.GPG_KEY1 }}
|
|
GPG_PASSPHRASE1: ${{ secrets.GPG_PASSPHRASE1 }}
|
|
GPG_KEY2: ${{ secrets.GPG_KEY2 }}
|
|
GPG_PASSPHRASE2: ${{ secrets.GPG_PASSPHRASE2 }}
|
|
SCRIPTS_ACCESS_TOKEN: ${{ secrets.SCRIPTS_ACCESS_TOKEN }}
|
|
KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Update download links and create torrents #
|
|
# #
|
|
##########################################################################################
|
|
|
|
Torrents:
|
|
name: Torrents
|
|
needs: [x86-cli-images,x86-desktop-images,cli-images,desktop-images]
|
|
if: ${{ github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/update-download.yml@master
|
|
|
|
secrets:
|
|
KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
USER_TORRENTS: ${{ secrets.USER_TORRENTS }}
|
|
HOST_TORRENTS: ${{ secrets.HOST_TORRENTS }}
|
|
KNOWN_HOSTS_TORRENTS: ${{ secrets.KNOWN_HOSTS_TORRENTS }}
|
|
|
|
##########################################################################################
|
|
# #
|
|
# Clean runners #
|
|
# #
|
|
##########################################################################################
|
|
|
|
Maintaining:
|
|
|
|
needs: [Bump,Torrents]
|
|
if: ${{ success() && github.repository_owner == 'Armbian' }}
|
|
uses: armbian/scripts/.github/workflows/maintain-runners.yml@master
|
|
|
|
with:
|
|
|
|
checking: true
|
|
|
|
secrets:
|
|
KEY_TORRENTS: ${{ secrets.KEY_TORRENTS }}
|
|
KNOWN_HOSTS_UPLOAD: ${{ secrets.KNOWN_HOSTS_UPLOAD }}
|