Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NH-12708 Add ARM support #111

Merged
merged 133 commits into from
Feb 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
213d6bd
(WIP) replace x86_64 with aarch64 as poc
tammy-baylis-swi Jan 27, 2023
125c05d
Fix stdout of wheel checker
tammy-baylis-swi Jan 28, 2023
7ce44a4
pwd without shell
tammy-baylis-swi Jan 28, 2023
ed844d5
Revert "pwd without shell"
tammy-baylis-swi Jan 28, 2023
57efd70
(WIP) aarch64 builds manylinux_2_24 not 2_17 wheel
tammy-baylis-swi Jan 28, 2023
d0155c0
Replace Dockerfile,sh with docker-compose
tammy-baylis-swi Jan 28, 2023
3e7c304
(WIP) env vars for build platform,wheel_tag
tammy-baylis-swi Jan 28, 2023
2835c35
Mv platform up
tammy-baylis-swi Jan 28, 2023
1e1cf42
env vars for check dist/wheel
tammy-baylis-swi Jan 30, 2023
c37e81b
Rename some vars
tammy-baylis-swi Jan 30, 2023
56edcb8
GH actions package x86 and aarch
tammy-baylis-swi Jan 30, 2023
9a90b6b
Testrelease 0.6.0.0
tammy-baylis-swi Jan 30, 2023
9b94de9
Add action env vars
tammy-baylis-swi Jan 30, 2023
33eecac
(WIP) break down testpypi publish flow
tammy-baylis-swi Jan 30, 2023
fd457d7
Try uraimo/run-on-arch-action
tammy-baylis-swi Jan 30, 2023
0361458
Try one job with run-on-arch
tammy-baylis-swi Jan 30, 2023
72472d0
base_image not image
tammy-baylis-swi Jan 30, 2023
b76a7e9
Try two twine uploads
tammy-baylis-swi Jan 30, 2023
3b285e5
Try install pip in run-on-arch
tammy-baylis-swi Jan 31, 2023
0c77ca9
Testrelease 0.6.0.1
tammy-baylis-swi Jan 31, 2023
1f6c3c0
apt without sudo
tammy-baylis-swi Jan 31, 2023
5a46bf1
Try apt-get
tammy-baylis-swi Jan 31, 2023
516c46e
Rm run-on-arch image; set arch/distro
tammy-baylis-swi Jan 31, 2023
3e7f634
apt-get -y
tammy-baylis-swi Jan 31, 2023
07c998c
Back to manylinux, try dnf
tammy-baylis-swi Jan 31, 2023
9ea6978
testrelease 0.6.0.2
tammy-baylis-swi Jan 31, 2023
6a80624
Try yum
tammy-baylis-swi Jan 31, 2023
fbc4714
Try call python3-pip
tammy-baylis-swi Jan 31, 2023
f86e88c
Try update-alternatives
tammy-baylis-swi Jan 31, 2023
6e68123
Try simpler pip install twine
tammy-baylis-swi Jan 31, 2023
b301851
Try pip install upgrade
tammy-baylis-swi Jan 31, 2023
90a7319
Also upgrade pip
tammy-baylis-swi Jan 31, 2023
238918b
testrelease 0.6.0.3
tammy-baylis-swi Jan 31, 2023
0eeaf91
Try wheel_tag manylinux2014_aarch64
tammy-baylis-swi Jan 31, 2023
2b0896e
Try wheel tag linux-aarch64 (hyphen)
tammy-baylis-swi Jan 31, 2023
15a1630
Revert "Try wheel tag linux-aarch64 (hyphen)"
tammy-baylis-swi Jan 31, 2023
e9dcad6
Revert "Try wheel_tag manylinux2014_aarch64"
tammy-baylis-swi Jan 31, 2023
53b1fee
Merge branch 'NH-28860-liboboe-12' into NH-12708-arm-support
tammy-baylis-swi Feb 3, 2023
9e9d017
Parameterize PLATFORM for local,GH install tests
tammy-baylis-swi Feb 3, 2023
3eb55b1
Fix aarch64 check_sdist
tammy-baylis-swi Feb 3, 2023
ab7ecb4
update aarch64 wheel_filename and tag
tammy-baylis-swi Feb 3, 2023
367344b
Merge branch 'main' into NH-12708-arm-support
tammy-baylis-swi Feb 3, 2023
8de598f
Suffix z
tammy-baylis-swi Feb 4, 2023
5423849
Revert "Suffix z"
tammy-baylis-swi Feb 4, 2023
42d4172
Testrelease 0.6.0.14
tammy-baylis-swi Feb 4, 2023
af0e4fc
Fix GH build_publish_aarch64 wheel tag
tammy-baylis-swi Feb 6, 2023
02e67be
Testrelease 0.6.0.15
tammy-baylis-swi Feb 6, 2023
d3b4a28
build_publish_aarch64 only uploads .whl
tammy-baylis-swi Feb 6, 2023
c06d152
Testrelease 0.6.0.16
tammy-baylis-swi Feb 6, 2023
784d96e
build_publish_aarch64 without uraimo/run-on-arch-action
tammy-baylis-swi Feb 6, 2023
f375326
Testrelease 0.6.0.17
tammy-baylis-swi Feb 6, 2023
ea2e42c
Revert "build_publish_aarch64 without uraimo/run-on-arch-action"
tammy-baylis-swi Feb 6, 2023
c54562a
Testrelease 0.6.0.18
tammy-baylis-swi Feb 6, 2023
fe7849d
Rm stray debian9 install test
tammy-baylis-swi Feb 6, 2023
9ab8296
Test: check_sdist expected_files always x86_64
tammy-baylis-swi Feb 6, 2023
da60dfb
Testrelease 0.6.0.19
tammy-baylis-swi Feb 6, 2023
a7c1251
Revert "Test: check_sdist expected_files always x86_64"
tammy-baylis-swi Feb 6, 2023
dbd0eb1
Test: don't check_sdist
tammy-baylis-swi Feb 6, 2023
78dc9c5
Testrelease 0.6.0.20
tammy-baylis-swi Feb 6, 2023
5f4ec96
Revert "Test: don't check_sdist"
tammy-baylis-swi Feb 6, 2023
534dbfb
Test: check_sdist doesn't _helper_check_extension_files
tammy-baylis-swi Feb 6, 2023
5230e50
Revert "Test: check_sdist doesn't _helper_check_extension_files"
tammy-baylis-swi Feb 6, 2023
f176426
gitignore install tests get-pip
tammy-baylis-swi Feb 6, 2023
f9a9fe5
download-liboboe and sdist include both x86,aarch
tammy-baylis-swi Feb 7, 2023
28a793e
Testrelease 0.6.0.21
tammy-baylis-swi Feb 7, 2023
fac463f
Rename workflow
tammy-baylis-swi Feb 7, 2023
5429366
build_publish_aarch64 with qemu
tammy-baylis-swi Feb 7, 2023
693c457
Testrelease 0.6.0.22
tammy-baylis-swi Feb 7, 2023
e31f39b
Fix typos
tammy-baylis-swi Feb 7, 2023
418a380
Build docker run with volume
tammy-baylis-swi Feb 8, 2023
c539ce9
Testrelease 0.6.0.23
tammy-baylis-swi Feb 8, 2023
8e889bd
Don't parameterize PLATFORM for GH install tests
tammy-baylis-swi Feb 8, 2023
7da0e73
Add py39_install_ubuntu2004_aarch64
tammy-baylis-swi Feb 8, 2023
45a138f
Hardcode PLATFORM
tammy-baylis-swi Feb 8, 2023
92b9712
Fix hostname
tammy-baylis-swi Feb 8, 2023
4512022
Add collector,service_key env vars to aarch test
tammy-baylis-swi Feb 8, 2023
fc4a0e7
Add py37_install_amazon2_aarch64
tammy-baylis-swi Feb 8, 2023
2a78021
Fix steps
tammy-baylis-swi Feb 8, 2023
da21cc7
Add more hardcoded aarch64 install tests
tammy-baylis-swi Feb 8, 2023
517a7d9
Add aarch64 build to PyPI,PackageCloud workflows
tammy-baylis-swi Feb 8, 2023
dd627cf
Rm extra image
tammy-baylis-swi Feb 8, 2023
84a1117
Install rvm before rvm.sh
tammy-baylis-swi Feb 8, 2023
a530609
Revert "Install rvm before rvm.sh"
tammy-baylis-swi Feb 8, 2023
6938725
Update rvm script source path
tammy-baylis-swi Feb 8, 2023
5606cfd
Update gpg keyserver for rvm install
tammy-baylis-swi Feb 8, 2023
897b715
(Again) Update rvm script source path
tammy-baylis-swi Feb 8, 2023
fa5fcc2
rvm without full bin path
tammy-baylis-swi Feb 8, 2023
f0ec33f
Ruby 2.5.9
tammy-baylis-swi Feb 8, 2023
a3016d9
Ruby 3.1.1 with-openssl-dir
tammy-baylis-swi Feb 8, 2023
456c3fa
Readd some rvm bin full paths
tammy-baylis-swi Feb 9, 2023
3076adc
zealous sourcing before every rvm
tammy-baylis-swi Feb 9, 2023
7efdfd3
Revert "zealous sourcing before every rvm"
tammy-baylis-swi Feb 9, 2023
c572f0d
One big Ruby-PackageCloud step
tammy-baylis-swi Feb 9, 2023
10fd990
Merge branch 'main' into NH-12708-arm-support
tammy-baylis-swi Feb 9, 2023
c2d6f3b
Testrelease 0.7.0.0
tammy-baylis-swi Feb 9, 2023
7d6d56b
Test
tammy-baylis-swi Feb 9, 2023
005edca
Add apt-get libssl openssl
tammy-baylis-swi Feb 9, 2023
8de88b1
sudo
tammy-baylis-swi Feb 9, 2023
fb3467d
rm openssl dir
tammy-baylis-swi Feb 9, 2023
a04cb66
Back to separate Ruby, PC, build, upload steps
tammy-baylis-swi Feb 9, 2023
8b08521
Back to rvm full bin path
tammy-baylis-swi Feb 9, 2023
d02b2e1
Revert "Back to rvm full bin path"
tammy-baylis-swi Feb 9, 2023
60142ba
which rvm
tammy-baylis-swi Feb 9, 2023
dee14bc
rvm home runner bin path
tammy-baylis-swi Feb 9, 2023
8baf3d3
Add TEST rhel8-only workflow
tammy-baylis-swi Feb 9, 2023
a4a5f67
Add clean_builds_intermediates
tammy-baylis-swi Feb 9, 2023
9077396
Testrelease 0.7.0.1
tammy-baylis-swi Feb 9, 2023
143ed32
Typo
tammy-baylis-swi Feb 9, 2023
56251a6
Revert "Typo"
tammy-baylis-swi Feb 9, 2023
bd8e65a
Revert "Add TEST rhel8-only workflow"
tammy-baylis-swi Feb 9, 2023
63203f4
TEMP test rhel8 only
tammy-baylis-swi Feb 9, 2023
e4d2b45
TEMP flask run no nohup
tammy-baylis-swi Feb 9, 2023
650abe9
Fix workflow typo
tammy-baylis-swi Feb 9, 2023
f48fa54
Testrelease 0.7.0.2
tammy-baylis-swi Feb 9, 2023
f00db21
Revert "TEMP flask run no nohup"
tammy-baylis-swi Feb 9, 2023
97d4ec1
TEST compare ubuntu vs rhel8
tammy-baylis-swi Feb 9, 2023
a1974ef
Fix typo
tammy-baylis-swi Feb 9, 2023
5411dd5
Revert "Fix typo"
tammy-baylis-swi Feb 9, 2023
ef6fa86
Revert "TEST compare ubuntu vs rhel8"
tammy-baylis-swi Feb 9, 2023
68065e6
Revert "TEMP test rhel8 only"
tammy-baylis-swi Feb 9, 2023
175fd14
Rm aarch64_py39_install_rhel8 hardcoded test
tammy-baylis-swi Feb 9, 2023
1a3768b
Rm env vars from GH make clean
tammy-baylis-swi Feb 10, 2023
42e1b45
PLATFORM default x86_64
tammy-baylis-swi Feb 10, 2023
97e58dc
_helper_check_wheel decides WHEEL_FILENAME from PLATFORM
tammy-baylis-swi Feb 10, 2023
e9e713e
Makefile decides WHEEL_TAG from PLATFORM
tammy-baylis-swi Feb 10, 2023
e30d1ff
Mv comment to new readme
tammy-baylis-swi Feb 10, 2023
b30c386
Formatting
tammy-baylis-swi Feb 10, 2023
e8eee75
Testrelease 0.7.0.3
tammy-baylis-swi Feb 10, 2023
a1d8a11
Fix twine install
tammy-baylis-swi Feb 10, 2023
162216b
Testrelease 0.7.0.4
tammy-baylis-swi Feb 10, 2023
924cd2c
Update changelog
tammy-baylis-swi Feb 10, 2023
226afbf
tox passenv PLATFORM
tammy-baylis-swi Feb 10, 2023
abed638
tox workflow env platform x86_64
tammy-baylis-swi Feb 10, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

name: package_solarwinds_apm
name: clean_builds_intermediates

description: Package solarwinds_apm
description: Clean up builds and intermediate files

runs:
using: 'docker'
image: quay.io/pypa/manylinux_2_28_x86_64:latest
entrypoint: 'make'
args:
- 'package'
- 'clean'
27 changes: 12 additions & 15 deletions run_docker_dev.sh → ...package_solarwinds_apm_x86_64/action.yaml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
#!/bin/bash
#
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
#
# to build the image:
# docker build -t dev-container .
#
# to run the image:
# ./run_docker_dev.sh

docker run -it \
--net=host \
--cap-add SYS_PTRACE \
--workdir /code/solarwinds_apm \
-v "$PWD":/code/solarwinds_apm \
-v "$PWD"/../solarwinds-apm-liboboe/:/code/solarwinds-apm-liboboe \
dev-container bash
name: package_solarwinds_apm_x86_64

description: Package solarwinds_apm for x86_64

runs:
using: 'docker'
image: quay.io/pypa/manylinux_2_28_x86_64:latest
env:
PLATFORM: x86_64
entrypoint: 'make'
args:
- 'package'
49 changes: 38 additions & 11 deletions .github/workflows/build_publish_packagecloud.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,50 @@ on:
jobs:
build_publish:
runs-on: ubuntu-latest
container:
image: quay.io/pypa/manylinux_2_28_x86_64:latest
steps:
- uses: actions/checkout@v3
- name: Install Ruby
- name: Install Ruby 3.1.1
run: |
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB && \
curl -sSL https://get.rvm.io | bash -s stable && source /etc/profile.d/rvm.sh && \
/usr/local/rvm/bin/rvm install 2.5.1 --disable-binary
sudo apt-get update -y
sudo apt-get install libssl-dev libreadline-dev libgdbm-dev openssl
gpg --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB && \
curl -sSL https://get.rvm.io | bash -s stable && \
source /home/runner/.rvm/scripts/rvm && \
/home/runner/.rvm/bin/rvm install 3.1.1 --disable-binary
- name: Install PackageCloud CLI
run: /usr/local/rvm/bin/rvm 2.5.1 do gem install package_cloud
- uses: ./.github/actions/package_solarwinds_apm
- name: Upload to PackageCloud
run: /home/runner/.rvm/bin/rvm 3.1.1 do gem install package_cloud
- name: Build sdist and x86_64
uses: ./.github/actions/package_solarwinds_apm_x86_64
- name: Upload sdist, x86_64 to PackageCloud
env:
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
run: |
/usr/local/rvm/bin/rvm 2.5.1 do package_cloud push solarwinds/solarwinds-apm-python/python \
/home/runner/.rvm/bin/rvm 3.1.1 do package_cloud push solarwinds/solarwinds-apm-python/python \
dist/solarwinds_apm-$(grep __version__ ./solarwinds_apm/version.py | cut -d= -f 2 | tr -d ' "').tar.gz
/usr/local/rvm/bin/rvm 2.5.1 do package_cloud push solarwinds/solarwinds-apm-python/python \
/home/runner/.rvm/bin/rvm 3.1.1 do package_cloud push solarwinds/solarwinds-apm-python/python \
dist/solarwinds_apm-$(grep __version__ ./solarwinds_apm/version.py | cut -d= -f 2 | tr -d ' "')*.whl
- name: Remove sdist, x86_64 builds and intermediates
uses: ./.github/actions/clean_builds_intermediates
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Build aarch64 in container with QEMU
run: |
sudo docker run \
--platform linux/arm64 \
-e PLATFORM=aarch64 \
-e TWINE_NON_INTERACTIVE=1 \
-e TWINE_USERNAME=__token__ \
-e TWINE_PASSWORD=${{ secrets.SW_APM_PYPI_UPLOAD_TOKEN }} \
-v $(pwd):/home \
-w /home \
--rm quay.io/pypa/manylinux_2_28_aarch64:latest \
/bin/bash -c "yum update -y; yum install -y python3-pip; \
update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1; \
pip install --upgrade pip; \
make package"
- name: Upload aarch64 to PackageCloud
env:
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
run: |
/home/runner/.rvm/bin/rvm 3.1.1 do package_cloud push solarwinds/solarwinds-apm-python/python \
dist/solarwinds_apm-$(grep __version__ ./solarwinds_apm/version.py | cut -d= -f 2 | tr -d ' "')*.whl
37 changes: 32 additions & 5 deletions .github/workflows/build_publish_pypi_and_draft_release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ jobs:
- name: Check version
run: cd .github/scripts && ./is_publishable.sh ${{ github.event.inputs.version }}

build_publish_and_release:
name: Build and publish to PyPI
build_publish_sdist_and_x86_64:
name: Build and publish sdist and x86_64
needs: is_publishable
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/package_solarwinds_apm
- uses: ./.github/actions/package_solarwinds_apm_x86_64
- name: Install Twine
run: pip install --upgrade --no-cache-dir --prefer-binary twine
- name: Check distribution artifacts
Expand All @@ -42,10 +42,37 @@ jobs:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.SW_APM_PYPI_UPLOAD_TOKEN }}
run: twine upload dist/*


build_publish_aarch64:
name: Build and publish aarch64
needs: is_publishable
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- uses: actions/checkout@v3
- name: Build aarch64 in container with QEMU
run: |
sudo docker run \
--platform linux/arm64 \
-e PLATFORM=aarch64 \
-e TWINE_NON_INTERACTIVE=1 \
-e TWINE_USERNAME=__token__ \
-e TWINE_PASSWORD=${{ secrets.SW_APM_PYPI_UPLOAD_TOKEN }} \
-v $(pwd):/home \
-w /home \
--rm quay.io/pypa/manylinux_2_28_aarch64:latest \
/bin/bash -c "yum update -y; yum install -y python3-pip; \
update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1; \
pip install --upgrade pip; \
pip install --upgrade twine; \
make package; \
twine check dist/*; \
twine upload dist/*.whl"
create_release:
name: Create draft release
needs: build_publish_and_release
needs: [build_publish_sdist_and_x86_64, build_publish_aarch64]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand Down
35 changes: 32 additions & 3 deletions .github/workflows/build_publish_testpypi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ on:
workflow_dispatch:

jobs:
build_publish:
build_publish_sdist_and_x86_64:
name: Build and publish sdist and x86_64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/package_solarwinds_apm
- name: Build x86_64
uses: ./.github/actions/package_solarwinds_apm_x86_64
- name: Install Twine
run: pip install --upgrade --no-cache-dir --prefer-binary twine
- name: Check distribution artifacts
Expand All @@ -25,4 +27,31 @@ jobs:
TWINE_REPOSITORY: testpypi
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.SW_APM_TESTPYPI_UPLOAD_TOKEN }}
run: twine upload dist/*
run: twine upload dist/*

build_publish_aarch64:
name: Build and publish aarch64
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- uses: actions/checkout@v3
- name: Build aarch64 in container with QEMU
run: |
sudo docker run \
--platform linux/arm64 \
-e PLATFORM=aarch64 \
-e TWINE_NON_INTERACTIVE=1 \
-e TWINE_REPOSITORY=testpypi \
-e TWINE_USERNAME=__token__ \
-e TWINE_PASSWORD=${{ secrets.SW_APM_TESTPYPI_UPLOAD_TOKEN }} \
-v $(pwd):/home \
-w /home \
--rm quay.io/pypa/manylinux_2_28_aarch64:latest \
/bin/bash -c "yum update -y; yum install -y python3-pip; \
update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1; \
pip install --upgrade pip; \
pip install --upgrade twine; \
make package; \
twine check dist/*; \
twine upload dist/*.whl"
2 changes: 2 additions & 0 deletions .github/workflows/run_tox_lint_format.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,5 @@ jobs:
run: make wrapper
- name: Run tox lint
run: tox -e lint -- --check-only
env:
PLATFORM: x86_64
2 changes: 2 additions & 0 deletions .github/workflows/run_tox_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,5 @@ jobs:
run: make wrapper
- name: Run tox
run: tox -e py3${{ matrix.python-minor }}-${{ matrix.apm-env }}
env:
PLATFORM: x86_64
Loading