Skip to content

Workflow file for this run

name: unstable_amd64_build
on:
push:
branches: [ matrix ]
workflow_dispatch:
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
establish_artifacts:
runs-on: ubuntu-20.04
steps:
- id: execute
run: |
mkdir -p /tmp/artifacts
touch /tmp/artifacts/test.yaml
- name: Save artifacts
uses: actions/upload-artifact@v3
with:
name: artifacts
path: /tmp/artifacts/
generate-jobs:
needs: establish_artifacts
runs-on: ubuntu-20.04
outputs:
job-strategy-matrix: ${{ steps.generate.outputs.job-strategy-matrix }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: 'recursive'
- name: Checkout CI scripts
uses: actions/checkout@v3
with:
repository: ctu-mrs/ci_scripts
ref: master
path: .ci_scripts
token: ${{ secrets.PUSH_TOKEN }}
- id: generate
run: |
JOB_STRATEGY_MATRIX=$(./.ci/get_build_matrix.sh unstable arm64)
echo "::set-output name=job-strategy-matrix::$JOB_STRATEGY_MATRIX"
build-job:
needs: generate-jobs
runs-on: ubuntu-20.04
timeout-minutes: 360 # 6 hour timeout
strategy:
matrix:
job: ${{ fromJson(needs.generate-job-strategy-matrix.outputs.job-strategy-matrix) }}
max-parallel: 1 # Run jobs serially
steps:
- name: Load artifacts
uses: actions/download-artifact@v3
with:
name: artifacts
path: /tmp/artifacts/
- uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: 'recursive'
- name: Checkout CI scripts
uses: actions/checkout@v3
with:
repository: ctu-mrs/ci_scripts
ref: master
path: .ci_scripts
token: ${{ secrets.PUSH_TOKEN }}
- uses: uraimo/run-on-arch-action@v2
name: build
id: build
with:
arch: aarch64
distro: ubuntu-20.04
githubToken: ${{ github.token }}
install: |
apt-get update -y
apt-get install -y sudo git curl
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections
# Create an artifacts directory
setup: |
mkdir -p "/tmp/artifacts"
mkdir -p "/tmp/repository"
# Mount the artifacts directory as /artifacts in the container
dockerRunArgs: |
--volume "$PWD:/tmp/repository"
--volume "/tmp/artifacts:/tmp/artifacts"
# The shell to run commands with in the container
shell: /bin/sh
# Produce a binary artifact and place it in the mounted volume
run: |
/tmp/repository/.ci/build.sh unstable "${{ matrix.job }}"
- name: Save artifacts
uses: actions/upload-artifact@v3
with:
name: artifacts
path: /tmp/artifacts/
collect_artifacts:
runs-on: ubuntu-20.04
needs: build-job
env:
PUSH_TOKEN: ${{ secrets.PUSH_TOKEN }}
steps:
- name: Load artifacts
uses: actions/download-artifact@v3
with:
name: artifacts
path: /tmp/artifacts/
- uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: 'recursive'
- name: Checkout CI scripts
uses: actions/checkout@v3
with:
repository: ctu-mrs/ci_scripts
ref: master
path: .ci_scripts
token: ${{ secrets.PUSH_TOKEN }}
- name: Deploy
run: .ci_scripts/package_build/push_to_ppa.sh unstable /tmp/artifacts