Skip to content

Build xPack GNU RISC-V Embedded GCC linux-arm64 #13

Build xPack GNU RISC-V Embedded GCC linux-arm64

Build xPack GNU RISC-V Embedded GCC linux-arm64 #13

# -----------------------------------------------------------------------------
# DO NOT EDIT!
# Generated from xpacks/@xpack-dev-tools/xbb-helper/templates/workflows/*.
#
# This file is part of the xPack distribution.
# (https://xpack.github.io)
# Copyright (c) 2021 Liviu Ionescu.
#
# Permission to use, copy, modify, and/or distribute this software
# for any purpose is hereby granted, under the terms of the MIT license.
# -----------------------------------------------------------------------------
# https://help.github.com/en/actions
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
# https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_dispatch
# https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_dispatch
# https://docs.github.com/en/rest/reference/actions#create-a-workflow-dispatch-event
# https://github.com/actions/checkout
# https://github.com/actions/upload-artifact
# https://github.com/actions/download-artifact
# -----------------------------------------------------------------------------
name: 'Build xPack GNU RISC-V Embedded GCC linux-arm64'
on:
workflow_dispatch:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputs
inputs:
version:
description: 'The semver of the release'
required: false
type: string
default: 'current'
xpm_version:
description: 'The version of xpm to install'
required: false
type: string
default: 'next'
xpm_install_loglevel:
description: 'Optional loglevel for xpm install'
required: false
default: 'info'
type: choice
options:
- silent
- warn
- info
- verbose
- debug
- trace
xpm_install_options:
description: 'Optional switches to pass to xpm install'
required: false
type: string
default: ''
helper-git-ref:
description: 'The helper branch, tag or SHA to checkout'
required: false
default: 'xpack-development'
jobs:
linux-arm64-build:
name: 'linux-arm64 riscv-none-elf-gcc ${{github.event.inputs.version}} build'
timeout-minutes: 2880 # 2 days
runs-on: [self-hosted, linux, arm64, xbbla, xbblax]
container:
image: ilegeul/ubuntu:arm64v8-18.04-xbb-v5.2.1
defaults:
run:
shell: bash
steps:
- name: 'Show environment'
run: |
uname -a
lsb_release -sd
echo "whoami: $(whoami)"
echo "pwd: $(pwd)"
echo "node: $(node --version)"
echo "npm: $(npm --version)"
ls -lLA
env | sort | grep -E '^[^ \t]+='
- name: 'Clean working area' # Mandatory for self-hosted runners.
run: |
chmod -Rf a+w * || true
rm -rf * .git*
- name: 'Checkout project'
uses: actions/checkout@v1 # v1 for old Git
with:
fetch-depth: 3
- name: 'Install xpm'
timeout-minutes: 1440
run: |
npm install --location=global xpm@${{github.event.inputs.xpm_version}}
xpm --version
- name: 'Install project dependencies'
timeout-minutes: 1440
run: xpm install --loglevel ${{github.event.inputs.xpm_install_loglevel}} ${{github.event.inputs.xpm_install_options}} -C build-assets
- name: 'Build linux-arm64 binaries'
timeout-minutes: 1440
run: |
xpm install --config linux-arm64 --loglevel ${{github.event.inputs.xpm_install_loglevel}} ${{github.event.inputs.xpm_install_options}} -C build-assets
xpm run build --config linux-arm64 -C build-assets
linux-arm64-upload:
name: 'linux-arm64 riscv-none-elf-gcc ${{github.event.inputs.version}} upload'
timeout-minutes: 2880 # 2 days
runs-on: [self-hosted, linux, arm64, xbbla, xbblax]
container:
defaults:
run:
shell: bash
needs: [linux-arm64-build]
steps:
- name: 'Show environment'
run: |
uname -a
lsb_release -sd
echo "whoami: $(whoami)"
echo "pwd: $(pwd)"
echo "node: $(node --version)"
echo "npm: $(npm --version)"
ls -lLA
env | sort | grep -E '^[^ \t]+='
- name: Upload platform artefacts
uses: actions/upload-artifact@v4
with:
name: deploy-linux-arm64
path: ${{github.workspace}}/build-assets/build/linux-arm64/deploy/*
overwrite: true
- name: 'Publish pre-release'
# https://github.com/ncipollo/release-action
uses: ncipollo/[email protected] # v1.13 for 18.04
with:
allowUpdates: true
artifacts: 'build-assets/build/linux-arm64/deploy/*'
bodyFile: '.github/workflows/body-github-pre-releases-test.md'
commit: 'master'
draft: false
name: 'Test binaries'
omitBodyDuringUpdate: true
omitDraftDuringUpdate: true
omitNameDuringUpdate: true
owner: 'xpack-dev-tools'
prerelease: true
replacesArtifacts: true
repo: 'pre-releases'
tag: 'test'
token: ${{secrets.PUBLISH_TOKEN}}
- name: 'Rename working area'
# For just in case absolute paths remain unprocessed.
run: echo mv -v build-assets/build build-assets/build-$(date -u +%Y%m%d-%H%M%S)
linux-arm64-test:
name: 'linux-arm64 riscv-none-elf-gcc ${{github.event.inputs.version}} test'
runs-on: [self-hosted, linux, arm64, xbbla, xbblax]
needs: [linux-arm64-upload]
steps:
- name: 'Show environment'
run: |
uname -a
lsb_release -sd
echo "whoami: $(whoami)"
echo "pwd: $(pwd)"
ls -lLA
env | sort | grep -E '^[^ \t]+='
- name: 'Clean working area' # Mandatory for self-hosted runners.
run: |
chmod -Rf a+w * || true
rm -rf * .git*
# https://github.com/actions/checkout
- name: 'Checkout project'
uses: actions/checkout@v4
with:
fetch-depth: 3
- name: 'Checkout helper ${{github.event.inputs.helper-git-ref}}'
uses: actions/checkout@v4
with:
repository: xpack-dev-tools/xbb-helper-xpack
path: build-assets/xpacks/@xpack-dev-tools/xbb-helper
ref: ${{github.event.inputs.helper-git-ref}}
fetch-depth: 3
- name: 'Run ${{github.event.inputs.version}} docker test'
uses: docker://node:lts-slim # Currently based on debian:12-slim
with:
entrypoint: /bin/bash
args: /github/workspace/build-assets/scripts/test.sh --image debian --version ${{github.event.inputs.version}} --base-url pre-release
- name: Upload platform tests report
uses: actions/upload-artifact@v4
with:
name: tests-report-linux-arm64
path: ${{github.workspace}}/build-assets/build/linux-arm64/artefacts/tests-report-*.md
overwrite: true