armbian-build/.github/workflows
ColorfulRhino 3e839e728b
actions: Move concurrency canceling to 2nd job for PR build
On every PR, a workflow is started to check if artifacts should be
built. This happens not only once, but many times, e.g. for every
selected reviewer. Since the workflow has `cancel-in-progress`
enabled, workflows are started and immediately cancelled by the
next one, resulting in many notifications.
Move the `cancel-in-progress` concurrency policy to the second job
which starts only after a check is done if the 'Build' label is even
active on the PR. This should greatly reduce "Workflow cancelled"
notifications via GitHub and email (if enabled by the user).

Also make wording more clear.
2024-06-09 22:42:00 +02:00
..
build-artifacts-pr.yml actions: Move concurrency canceling to 2nd job for PR build 2024-06-09 22:42:00 +02:00
build-board-list.yml build(deps): bump peter-evans/repository-dispatch from 2 to 3 2024-01-29 19:42:37 +01:00
build-train.yml build(deps): bump peter-evans/repository-dispatch from 2 to 3 2024-01-29 19:42:37 +01:00
forked-helper.yml GH Actions: forked-helper: Fix deprecated ::set-output, fix 404 link 2024-03-09 20:03:52 +01:00
kernel-security-analysis-pr.yml build(deps): bump tj-actions/changed-files from 43 to 44 2024-04-01 20:46:29 +02:00
labeler.yml Fix automatic labeling system due to upstream breaking change (#6011) 2023-12-05 12:10:35 +01:00
labels-from-yml.yml Enable workflow_dispatch command for labels regenerate 2024-01-30 13:17:39 +01:00
lint-scripts-pr.yml build(deps): bump tj-actions/changed-files from 43 to 44 2024-04-01 20:46:29 +02:00
open-jira-ticket.yml Open a Jira ticket when GitHub issue is raised (#4887) 2023-03-02 19:09:55 +01:00
pr-size-labeler.yml build(deps): bump pascalgn/size-label-action from 0.5.0 to 0.5.2 2024-04-23 03:04:51 +08:00
README.md GH Actions: Update README.md on how to create and use ARMBIAN_SELF_DISPATCH_TOKEN 2024-03-09 20:03:52 +01:00
rebase.yml build(deps): bump actions/checkout from 3 to 4 2023-09-06 13:09:07 +02:00
scorecard.yml build(deps): bump ossf/scorecard-action from 2.3.1 to 2.3.3 2024-05-14 06:12:51 +01:00

Runners requirements

  • big (6-16 cores, 64Gb SSD, 16Gb memory, 2Gb swap)
  • small (4 cores, 64Gb SSD, 8Gb memory, 2Gb swap)

Preparation

Adding x86 runner to your Jammy VM (check here if any changes):

$ mkdir actions-runner 
$ cd actions-runner
$ curl -o actions-runner-linux-x64-2.294.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.294.0/actions-runner-linux-x64-2.294.0.tar.gz
$ tar xzf ./actions-runner-linux-x64-2.294.0.tar.gz

Configuration

Once asked, tag your runner accordingly:

  • small
  • big
  • arm64

Start the configuration experience

$ ./config.sh --url https://github.com/armbian --token XXXXXXXXXXXXXXXXXXXXXXXXXXX

You need to get a valid token from our DevOps team to proceed.

Create startup scripts

sudo ./svc.sh install # install
sudo ./svc.sh start   # start
sudo ./svc.sh status  # check

Use workflows in forked repositories

forked-helper.yml workflow helper can help to run custom workflows on the forked repositories.

  1. Create a fine-grained Personal Access Token (PAT) with the repo scope and store it as a secret. It needs the following permissions on the target repositories:
    • contents: read & write
    • metadata: read only (automatically selected when selecting the contents permission)
  2. Create a secret named ARMBIAN_SELF_DISPATCH_TOKEN on your repository with security_events permissions. To do this, head to your forked repository, go to Settings on the top bar, select Secrets and variables and then Actions. From here you can create a new repository secret.
    • Name: ARMBIAN_SELF_DISPATCH_TOKEN
    • Secret: Paste your fine-grained Personal Access Token that you created in step 1 here
  3. Helper will dispatch repository_dispatch event armbian on push, release, deployment, pull_request and workflow_dispatch events. All needed event details you can find in client_payload property of the event.
  4. Create empty default branch in forked repository
  5. Create workflow with repository_dispatch in default branch.
  6. Run any need actions in this workflow.

Workflow example:

name: Test Armbian dispatch

on:
  repository_dispatch:
    types: ["armbian"]

jobs:
  show-dispatch:
    name: Show dispatch event details
    runs-on: ubuntu-latest
    steps:
      - uses: hmarr/debug-action@v2