-
Notifications
You must be signed in to change notification settings - Fork 0
131 lines (112 loc) · 4.14 KB
/
archlinux.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# This is a basic workflow to help you get started with Actions
name: Arch Linux
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [main]
pull_request:
branches: [main]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
inputs:
ref:
description: "Branch/tag/commit"
required: true
default: dart7/main
platform:
description: "Platform architecture: {linux/amd64, linux/arm64, linux/ppc64le}"
required: true
default: "linux/amd64"
compiler:
description: "Compiler: {gcc, clang}"
required: true
default: "gcc"
build_type:
description: "Build type: {Release, Debug}"
required: true
default: "Release"
build_dartpy:
description: "Build dartpy: {ON, OFF}"
required: true
default: "ON"
repository_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
manual_build:
if: github.event_name == 'workflow_dispatch'
# The name of jobs
name: archlinux.${{ github.event.inputs.platform }}.${{ github.event.inputs.build_type }}
# The type of runner that the job will run on
runs-on: ubuntu-latest
env:
# Hosted on: https://hub.docker.com/repository/docker/dartsim/dart-dev
DART_DEV_IMAGE: dartsim/dart-dev
DOCKER_TAG: archlinux-v8.0
PLATFORM: ${{ github.event.inputs.platform }}
COMPILER: ${{ github.event.inputs.compiler }}
BUILD_TYPE: ${{ github.event.inputs.build_type }}
BUILD_DARTPY: ${{ github.event.inputs.build_dartpy }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# https://github.com/marketplace/actions/docker-setup-qemu
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
repository: dartsim/dart
ref: ${{ github.event.inputs.ref }}
- name: Pull dev container
run: docker pull $DART_DEV_IMAGE:$DOCKER_TAG
- name: Build
run: |
docker run \
-e CI=true \
--platform $PLATFORM \
--volume $GITHUB_WORKSPACE:$GITHUB_WORKSPACE \
--env-file ./.ci/docker/env.list \
$DART_DEV_IMAGE:$DOCKER_TAG \
/bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/build.sh"
triggered_by_dart:
if: github.event_name == 'repository_dispatch'
name: ${{ matrix.os }}.${{ matrix.platform }}.${{ matrix.compiler }}.${{ matrix.build_type }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [archlinux]
platform: [linux/amd64]
compiler: [gcc, clang]
build_type: [Debug, Release]
build_dartpy: [ON]
env:
# Hosted on: https://hub.docker.com/repository/docker/dartsim/dart-dev
DART_DEV_IMAGE: dartsim/dart-dev
DOCKER_TAG: ${{ matrix.os }}-v8.0
PLATFORM: ${{ matrix.platform }}
COMPILER: ${{ matrix.compiler }}
BUILD_TYPE: ${{ matrix.build_type }}
BUILD_DARTPY: ${{ matrix.build_dartpy }}
steps:
- name: Event Information
run: |
echo "Event '${{ github.event.action }}' received from '${{ github.event.client_payload.repository }}' (${{ github.event.client_payload.ref }})"
- uses: actions/checkout@v2
with:
repository: dartsim/dart
ref: ${{ github.event.client_payload.ref }}
# https://github.com/marketplace/actions/docker-setup-qemu
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Pull dev container
run: docker pull $DART_DEV_IMAGE:$DOCKER_TAG
- name: Build
run: |
docker run \
-e CI=true \
--platform $PLATFORM \
--volume $GITHUB_WORKSPACE:$GITHUB_WORKSPACE \
--env-file ./.ci/docker/env.list \
$DART_DEV_IMAGE:$DOCKER_TAG \
/bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/build.sh"