-
Notifications
You must be signed in to change notification settings - Fork 576
145 lines (142 loc) · 5.22 KB
/
pkgci_build_packages.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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# Copyright 2023 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
name: PkgCI Build Packages
on:
workflow_call:
inputs:
package_version:
type: string
required: true
jobs:
linux_x86_64_release_packages:
name: Linux Release (x86_64)
runs-on:
- self-hosted # must come first
- runner-group=${{ github.event_name == 'pull_request' && 'presubmit' || 'postsubmit' }}
- environment=prod
- cpu
- os-family=Linux
strategy:
fail-fast: false
env:
CACHE_DIR: ${{ github.workspace }}/.iree-container-cache
MANYLINUX_DOCKER_IMAGE: ghcr.io/nod-ai/manylinux_x86_64:main
PACKAGE_SUFFIX: ""
steps:
- name: Prefetch Docker
run: |
docker pull "$MANYLINUX_DOCKER_IMAGE" &
- name: Checking out repository
uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
with:
submodules: true
- name: Write version info
shell: bash
run: |
cat << EOF > version_info.json
{
"package-suffix": "${PACKAGE_SUFFIX}",
"package-version": "${{ inputs.package_version }}",
"iree-revision": "$(cd ../iree && git rev-parse HEAD)"
}
EOF
realpath version_info.json
cat version_info.json
- name: Enable cache
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
with:
path: ${{ env.CACHE_DIR }}
key: iree-pkgci-linux-release-x86_64-v1-${{ github.sha }}
restore-keys: |
iree-pkgci-linux-release-x86_64-v1-
- name: Wait for docker pull
run: |
wait
- name: Build
run: |
export cache_dir="${{ env.CACHE_DIR }}"
export output_dir="${{ github.workspace }}/wheelhouse"
export toolchain_suffix=release
export manylinux_docker_image="$MANYLINUX_DOCKER_IMAGE"
export package_suffix="$PACKAGE_SUFFIX"
# If just iterating locally, uncomment this to build a cheap wheel.
# export packages="iree-runtime"
./build_tools/pkgci/build_linux_packages.sh
# Some things put stuff in cache with weird, root read-only
# permissions. Take them back.
sudo chown -R "$(whoami)" "${cache_dir}"
- name: Upload wheel artifacts
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
with:
name: linux_x86_64_release_packages
path: |
${{ github.workspace }}/wheelhouse/iree*.whl
if-no-files-found: error
# TODO: Debug low ccache hit rate and re-enable.
# linux_x86_64_release_asserts_packages:
# name: Linux Release Asserts (x86_64)
# runs-on:
# - self-hosted # must come first
# - runner-group=${{ github.event_name == 'pull_request' && 'presubmit' || 'postsubmit' }}
# - environment=prod
# - cpu
# - os-family=Linux
# strategy:
# fail-fast: false
# env:
# CACHE_DIR: ${{ github.workspace }}/.iree-container-cache
# MANYLINUX_DOCKER_IMAGE: ghcr.io/nod-ai/manylinux_x86_64:main
# PACKAGE_SUFFIX: "-asserts"
# steps:
# - name: Prefetch Docker
# run: |
# docker pull "$MANYLINUX_DOCKER_IMAGE" &
# - name: "Checking out repository"
# uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
# with:
# submodules: true
# - name: Write version info
# shell: bash
# run: |
# cat << EOF > version_info.json
# {
# "package-suffix": "${PACKAGE_SUFFIX}",
# "package-version": "${{ inputs.package_version }}",
# "iree-revision": "$(cd ../iree && git rev-parse HEAD)"
# }
# EOF
# realpath version_info.json
# cat version_info.json
# - name: Enable cache
# uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
# with:
# path: ${{ env.CACHE_DIR }}
# key: iree-pkgci-linux-release-asserts-x86_64-v1-${{ github.sha }}
# restore-keys: |
# iree-pkgci-linux-release-asserts-x86_64-v1-
# - name: Wait for docker pull
# run: |
# wait
# - name: Build
# run: |
# export cache_dir="${{ env.CACHE_DIR }}"
# export output_dir="${{ github.workspace }}/wheelhouse"
# export toolchain_suffix=release_asserts
# export manylinux_docker_image="$MANYLINUX_DOCKER_IMAGE"
# export package_suffix="$PACKAGE_SUFFIX"
# # If just iterating locally, uncomment this to build a cheap wheel.
# # export packages="iree-runtime"
# ./build_tools/pkgci/build_linux_packages.sh
# # Some things put stuff in cache with weird, root read-only
# # permissions. Take them back.
# sudo chown -R "$(whoami)" "${cache_dir}"
# - name: Upload wheel artifacts
# uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
# with:
# name: linux_x86_64_release_asserts_packages
# path: |
# ${{ github.workspace }}/wheelhouse/iree*.whl
# if-no-files-found: error