-
Notifications
You must be signed in to change notification settings - Fork 240
Expand file tree
/
Copy pathbuild_native_linux_packages.yml
More file actions
133 lines (124 loc) · 4.97 KB
/
build_native_linux_packages.yml
File metadata and controls
133 lines (124 loc) · 4.97 KB
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
name: Build Native Linux Packages
on:
workflow_call:
inputs:
artifact_group:
description: gfx arch group for the s3 server
type: string
default: gfx94X-dcgpu
artifact_run_id:
description: workflow run id to download the artifacts from.
required: true
type: string
rocm_version:
description: ROCm version to append to the package(8.0.0, 8.0.1rc1, ... ).
required: true
type: string
native_package_type:
description: Specify whether debian or rpm packages are needed (deb or rpm).
required: true
type: string
package_suffix:
description: The suffix to be added to package name (asan, static or rpath).
required: false
type: string
release_type:
description: The type of build version to produce (nightly, prerelease or dev).
required: false
type: string
workflow_dispatch:
inputs:
artifact_group:
type: string
default: gfx94X-dcgpu
artifact_run_id:
description: workflow run id to download the artifacts from
type: string
rocm_version:
description: ROCm version to append to the package (8.0.0, 8.0.1rc1, ...).
type: string
default: "0.0.1"
native_package_type:
description: Specify whether debian or rpm packages are needed (deb or rpm).
required: true
type: choice
options:
- rpm
- deb
default: "rpm"
package_suffix:
description: The suffix to be added to package name (asan, static or rpath).
type: string
required: false
release_type:
description: The type of build version to produce (nightly, prerelease or dev).
type: string
default: "dev"
permissions:
id-token: write
contents: read
jobs:
build_native_packages:
name: Build Linux native Packages
strategy:
fail-fast: false
runs-on: ${{ github.repository_owner == 'ROCm' && 'azure-linux-scale-rocm' || 'ubuntu-24.04' }}
env:
BUILD_IMAGE: ghcr.io/rocm/therock_build_manylinux_x86_64@sha256:583d473f263a289222c48d4b493e2956b2354a45796f09dee6f2c8ecd4504ab6
ARTIFACT_RUN_ID: ${{ inputs.artifact_run_id || github.run_id }}
PACKAGE_SUFFIX: ${{ inputs.package_suffix != '' && inputs.package_suffix || '' }}
OUTPUT_DIR: ${{ github.workspace }}/output
ARTIFACTS_DIR: ${{ github.workspace }}/output/artifacts
PACKAGE_DIST_DIR: ${{ github.workspace }}/output/packages
RELEASE_TYPE: ${{ inputs.release_type || '' }}
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: '3.12'
- name: Install Python requirements
run: |
pip install pyelftools boto3 jinja2
- name: Install System requirements
run: |
# Install the needed tools for creating rpm / deb packages
# Also install tools for creating repo files
sudo apt update
sudo apt install -y llvm
sudo apt install -y rpm debhelper-compat build-essential
sudo apt install -y dpkg-dev createrepo-c
- name: Fetch Artifacts
run: |
echo "Fetching artifacts for build ${{ inputs.artifact_run_id }}"
python ./build_tools/fetch_artifacts.py \
--run-id=${{ env.ARTIFACT_RUN_ID }} \
--run-github-repo="ROCm/TheRock" \
--artifact-group=${{ inputs.artifact_group }} \
--output-dir=${{ env.ARTIFACTS_DIR }}
- name: Build Packages
id: build-packages
run: |
echo "Building ${{ inputs.native_package_type }} packages for ${{ inputs.artifact_group }} ${{ inputs.artifact_run_id }}"
python ./build_tools/packaging/linux/build_package.py \
--dest-dir ${{ env.PACKAGE_DIST_DIR }} \
--rocm-version ${{ inputs.rocm_version }} \
--target ${{ inputs.artifact_group }} \
--artifacts-dir ${{ env.ARTIFACTS_DIR }} \
--pkg-type ${{ inputs.native_package_type }} \
--version-suffix ${{ env.PACKAGE_SUFFIX }}
- name: Install AWS CLI
run: bash ./dockerfiles/install_awscli.sh
- name: Configure AWS Credentials for non-forked repos
uses: aws-actions/configure-aws-credentials@00943011d9042930efac3dcd3a170e4273319bc8 # v5.1.0
with:
aws-region: us-east-2
role-to-assume: arn:aws:iam::692859939525:role/therock-artifacts-external
- name: Upload Package repo to S3
id: upload-packages
run: |
echo "Uploading to s3 bucket"
python ./build_tools/packaging/linux/upload_package_repo.py \
--pkg-type ${{ inputs.native_package_type }} \
--s3-bucket therock-deb-rpm-test \
--amdgpu-family ${{ inputs.artifact_group }} \
--artifact-id ${{ env.ARTIFACT_RUN_ID }}