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

ci: GitHub actions workflow #145

Closed
wants to merge 75 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
bd4dc60
ci: GitHub actions workflow
tvandera Jun 3, 2024
f3006b5
CI: cibuildwheel env vars for linux
tvandera Jun 3, 2024
a144259
fixup! CI: cibuildwheel env vars for linux
tvandera Jun 3, 2024
2b7eb85
CI: build from source on Ubuntu
tvandera Jun 3, 2024
f6ca9e2
fixup! fixup! CI: cibuildwheel env vars for linux
tvandera Jun 3, 2024
b711f99
CI: make install needs sudo
tvandera Jun 3, 2024
eb2ba22
CI: limit wheels to linux (for the moment)
tvandera Jun 3, 2024
4ea5804
setup: scikit-build WIP
tvandera Jun 4, 2024
467ad91
setup: switch to sckit-build-core
tvandera Jun 4, 2024
913731a
cibw docker: rm cmake and pybind11, these are now installed via pip
tvandera Jun 6, 2024
4b1865d
cibuilwheel: from GitHub workflow env to pyproject.toml
tvandera Jun 6, 2024
4ac669c
ci: moved to pyproject.toml
tvandera Jun 6, 2024
5172fe2
cibw: skip pypy
tvandera Jun 6, 2024
f026d9a
cibw: add musl, skip i686
tvandera Jun 6, 2024
eeaea03
ci: on push to master only
tvandera Jun 6, 2024
c92bdd3
ci: macos deployment version
tvandera Jun 6, 2024
3f0d645
ci: enable macOS wheels
tvandera Jun 6, 2024
9536a36
ci: add auto-converted azure pipelines files
tvandera Jun 7, 2024
18af73c
cibw: add before-all on macOS
tvandera Jun 7, 2024
87a1f85
ci: document why skip certain builds
tvandera Jun 7, 2024
199e976
ci: use openblas
tvandera Jun 7, 2024
3421497
ci: cleanup pyproject, add --formulae to brew install
tvandera Jun 7, 2024
c9084fc
cibw: add macos-13
tvandera Jun 7, 2024
977a95c
ci: use openblas -- fixup
tvandera Jun 7, 2024
44527a4
CI: test move MACOS_DEPLOYMENT_VERSION to wheels.yml
tvandera Jun 10, 2024
3751420
CI: brew force link openblas
tvandera Jun 10, 2024
644e9be
ci: put macos-target in matrix
tvandera Jun 10, 2024
4c79601
ci: put openblas-path in matrix
tvandera Jun 10, 2024
c1236fd
ci: put openblas-path in matrix
tvandera Jun 10, 2024
0530446
fixup! ci: put openblas-path in matrix
tvandera Jun 10, 2024
a76fbe4
ci: put openblas-path in matrix
tvandera Jun 10, 2024
01b72c6
ci: put openblas-path in matrix
tvandera Jun 10, 2024
3284a78
wip
tvandera Jun 10, 2024
be301d6
wip
tvandera Jun 10, 2024
e9d027e
conda: updated recipe
tvandera Jun 11, 2024
271f0f3
conda: cmake args from variant
tvandera Jun 13, 2024
cc94e85
conda: blas_impl
tvandera Jun 14, 2024
b598d00
conda: blas_impl
tvandera Jun 14, 2024
e92680e
cibw: wip
tvandera Jun 14, 2024
3d13d5d
cibw: wip macos
tvandera Jun 14, 2024
a6e6d26
cibw: wip macos
tvandera Jun 14, 2024
a819da1
cibw: wip macos
tvandera Jun 14, 2024
3b9b033
cibw: do not set MACOSX_DEPLOYMENT_TARGET
tvandera Jun 17, 2024
dca7c23
cibw: disable Python 3.7
tvandera Jun 17, 2024
e2decd3
cibw: re-enable linux and macos-14
tvandera Jun 17, 2024
0856244
cibw: re-enable linux and macos-14
tvandera Jun 17, 2024
c64fe62
pyproject: enable openblas by default
tvandera Jun 17, 2024
3e0f862
cibw: wip
tvandera Jun 17, 2024
373a5ef
cibw: wip
tvandera Jun 17, 2024
88309a3
ci: split conda and cibw cmake defines
tvandera Jun 17, 2024
4c76308
ci: split conda and cibw cmake defines
tvandera Jun 17, 2024
f8c56c3
ci: wip conda
tvandera Jun 17, 2024
2717f2e
ci: wip conda
tvandera Jun 17, 2024
0ca4b6e
conda: devtools build env
tvandera Jun 17, 2024
2c9aa0c
conda: run conda info
tvandera Jun 17, 2024
3501cb2
conda: run conda info
tvandera Jun 17, 2024
06545b1
conda: run conda info
tvandera Jun 17, 2024
a5ad9e4
conda: run conda info
tvandera Jun 17, 2024
c546016
conda: run conda info
tvandera Jun 17, 2024
45918c3
conda: run conda info
tvandera Jun 17, 2024
a153537
conda: needs libboost-devel
tvandera Jun 17, 2024
86ab7d2
conda: needs libboost-devel
tvandera Jun 17, 2024
ec2fa5a
cibw: build HDF5
tvandera Jun 17, 2024
b73b496
cibw: install_deps.sh
tvandera Jun 18, 2024
e8ab32a
cmake: unified configure_blas()
tvandera Jun 19, 2024
5606220
cibw: WIP install deps
tvandera Jun 19, 2024
3b473ac
ci: conda on windows
tvandera Jun 20, 2024
2aad990
cibw: remove unneeded CMAKE_PREFIX_PATH
tvandera Jun 20, 2024
2e02a89
cinw: clean install_hdf5.sh
tvandera Jun 20, 2024
558a862
cinw: clean install_hdf5.sh
tvandera Jun 20, 2024
cac736f
cibw: macos
tvandera Jun 20, 2024
9c5e74b
cibw: linux
tvandera Jun 20, 2024
fba0654
cibw: macos
tvandera Jun 20, 2024
a114317
conda: windows
tvandera Jun 20, 2024
4d44636
conda on windows
tvandera Jun 20, 2024
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
20 changes: 2 additions & 18 deletions .github/workflows/build_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,13 @@ jobs:
sudo apt-get install -y cmake wget ninja-build libblas-dev liblapack-dev liblapacke-dev libboost-all-dev libopenmpi-dev libeigen3-dev libhdf5-dev
sudo apt-get clean all

- name: Install Catch v3
run: |
cd /tmp
wget -O Catch2.tar.gz https://github.com/catchorg/Catch2/archive/refs/tags/v3.6.0.tar.gz
tar xzf Catch2.tar.gz
rm Catch2.tar.gz
cd Catch2*
cmake -S . -B build -DBUILD_TESTING=OFF
cmake --build build
sudo cmake --install build

- name: Install HighFive
run: |
cd /tmp
wget -O HighFive.tar.gz https://github.com/BlueBrain/HighFive/archive/v2.9.0.tar.gz
tar xzf HighFive.tar.gz
rm HighFive.tar.gz
cd HighFive*
cmake -DHIGHFIVE_EXAMPLES=OFF -DHIGHFIVE_USE_BOOST=OFF -DHIGHFIVE_UNIT_TESTS=OFF -S . -B build
cmake -S . -B build
cmake --build build
sudo cmake --install build

Expand All @@ -59,10 +47,6 @@ jobs:
run: |-
cmake --build build.${{ matrix.build.type }}

- name: Install
run: |-
sudo cmake --install build.${{ matrix.build.type }}

- name: Run tests
run: |-
smurff --bist
./build.${{ matrix.build.type }}/bin/tests
2 changes: 1 addition & 1 deletion .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build Wheels
name: Build

on:
pull_request:
Expand Down
2 changes: 2 additions & 0 deletions ci/buildwheel/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
hdf5*/
openblas*/
33 changes: 0 additions & 33 deletions ci/buildwheel/Dockerfile

This file was deleted.

2 changes: 1 addition & 1 deletion ci/buildwheel/install_deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ cd "$SCRIPT_DIR"
echo "MACOSX_DEPLOYMENT_TARGET: [$MACOSX_DEPLOYMENT_TARGET]"
echo "PWD: [$PWD]"

brew install --formulae eigen ../highfive.rb catch2
brew install --formulae eigen ../highfive.rb
brew uninstall --ignore-dependencies hdf5

./install_hdf5.sh
57 changes: 57 additions & 0 deletions ci/buildwheel/install_hdf5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/usr/bin/env python3

import logging
from subprocess import check_call
import os
import shutil
from pathlib import Path
import h5py

logging.basicConfig(level=logging.INFO)

hdf5_basedir = Path(__file__).parent.absolute()
# hdf5_install_dir = hdf5_basedir / "hdf5"
hdf5_install_dir = Path("/usr/local/hdf5")

if hdf5_install_dir.exists():
logging.warn(f"install dir already exists: {hdf5_install_dir} -- skipping")
exit(0)

major, minor, release = h5py.h5.get_libversion()
full = f"{major}.{minor}.{release}"
logging.info(f"found h5py version: {full}")

h5py_package_dir = Path(h5py.__file__).parent
h5py_lib_dir = h5py_package_dir / '.dylibs'
logging.info(f"found h5py lib_dir: {h5py_lib_dir}")

hdf5_src_dir = hdf5_basedir / f"hdf5-{full}"

logging.info(f"building in : {hdf5_src_dir}")
logging.info(f"installing in : {hdf5_install_dir}")

url = f"https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-{major}.{minor}/hdf5-{full}/src/hdf5-{full}.tar.gz"
logging.info(f"download: {url}")
check_call(f"wget -q {url} -O - | tar -xzf -", shell=True, cwd=hdf5_basedir)

logging.info(f"build and install")
check_call(f"""
./configure --prefix={hdf5_install_dir} &&
make -j &&
sudo mkdir -m 777 {hdf5_install_dir} &&
make install""",
shell=True,
cwd=hdf5_src_dir)

hdf5_lib_dir = hdf5_install_dir / "lib"
hdf5_lib_dir_backup = hdf5_install_dir / "lib.orig"

logging.info(f"replace dylibs in {hdf5_lib_dir} from {h5py_lib_dir}")
for f in h5py_lib_dir.glob('*.dylib'):
logging.info(f" {f} -> {h5py_lib_dir}/")
shutil.copy(f, hdf5_lib_dir)





120 changes: 120 additions & 0 deletions ci/converted/audit/audit_summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Audit summary

Summary for [Azure DevOps instance](https://dev.azure.com/ExaScience/smurff/_build)

- GitHub Actions Importer version: **1.3.22039 (9432caa2d13df57db8619b9b253cdf994da6625c)**
- Performed at: **6/3/24 at 12:31**

## Pipelines

Total: **1**

- Successful: **0 (0%)**
- Partially successful: **1 (100%)**
- Unsupported: **0 (0%)**
- Failed: **0 (0%)**

### Job types

Supported: **1 (100%)**

- YAML: **1**

### Build steps

Total: **28**

Known: **27 (96%)**

- script: **10**
- bash: **9**
- PublishBuildArtifacts@1: **5**
- UsePythonVersion@0: **2**
- powershell: **1**

Unknown: **1 (3%)**

- CMake@1: **1**

Actions: **35**

- run: **20**
- actions/[email protected]: **6**
- actions/[email protected]: **5**
- actions/[email protected]: **2**
- ./.github/actions/ci_conda_steps: **2**

### Triggers

Total: **2**

Known: **2 (100%)**

- pullRequest: **1**
- continuousIntegration: **1**

Actions: **2**

- pull_request: **1**
- push: **1**

### Environment

Total: **2**

Known: **2 (100%)**

- system_debug: **1**
- CPU_COUNT: **1**

Actions: **2**

- system_debug: **1**
- CPU_COUNT: **1**

### Other

Total: **20**

Known: **20 (100%)**

- matrix: **6**
- CIBW_TEST_REQUIRES: **2**
- CIBW_TEST_COMMAND: **2**
- CIBW_ENVIRONMENT: **2**
- CIBW_BUILD_VERBOSITY: **2**
- CIBW_BUILD: **2**
- CIBW_MANYLINUX_X86_64_IMAGE: **1**
- macOS_sdk_url: **1**
- macOS_sdk_filename: **1**
- maxParallel: **1**

Actions: **20**

- matrix: **6**
- CIBW_TEST_REQUIRES: **2**
- CIBW_TEST_COMMAND: **2**
- CIBW_ENVIRONMENT: **2**
- CIBW_BUILD_VERBOSITY: **2**
- CIBW_BUILD: **2**
- CIBW_MANYLINUX_X86_64_IMAGE: **1**
- macOS_sdk_url: **1**
- macOS_sdk_filename: **1**
- max_parallel: **1**

### Manual tasks

Total: **2**

Self hosted runners: **2**

- `macOS-latest`: **2**

### Partially successful

#### smurff/ExaScience.smurff

- [pipelines/smurff/ExaScience.smurff/.github/workflows/exascience.smurff.yml](pipelines/smurff/ExaScience.smurff/.github/workflows/exascience.smurff.yml)
- [pipelines/smurff/ExaScience.smurff/.github/actions/ci_conda_steps/action.yml](pipelines/smurff/ExaScience.smurff/.github/actions/ci_conda_steps/action.yml)
- [pipelines/smurff/ExaScience.smurff/config.json](pipelines/smurff/ExaScience.smurff/config.json)
- [pipelines/smurff/ExaScience.smurff/source.yml](pipelines/smurff/ExaScience.smurff/source.yml)
27 changes: 27 additions & 0 deletions ci/converted/audit/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
composite_actions:
# Usage examples
# 1. Local composite action in actions folder (Default)
# Results in `uses: ./.github/actions/my_template`
# - name: my_template
# ref: main
# 2. Local composite action in another directory
# Results in `uses: ./path/to/action`
# - name: my_template
# ref: main
# path: path/to/action
# 3. Remote repository with composite action at the root of the repository
# Results in `uses: org/repo@ref`
# - name: my_template
# target_url: REDACTED
# ref: main
# 4. Remote repository with composite action in another directory
# Results in `uses: org/repo/path/to/action@ref`
# - name: my_template
# target_url: REDACTED
# ref: main
# path: path/to/action
- name: ci_conda_steps
ref: main
- name: ci_conda_steps
ref: main
46 changes: 46 additions & 0 deletions ci/converted/audit/log/valet-20240603-122921.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Logfile created on 2024-06-03 12:29:21 +0000 by logger.rb/v1.6.0
I, [2024-06-03T12:29:21.403827 #1] INFO -- : Using GitHub Features: Defaults
I, [2024-06-03T12:29:21.403934 #1] INFO -- : Auditing 'REDACTED_build'
I, [2024-06-03T12:29:21.407066 #1] INFO -- request: GET REDACTED_apis/distributedtask/tasks?api-version=5.0-preview
I, [2024-06-03T12:29:21.752834 #1] INFO -- response: Status 401
I, [2024-06-03T12:29:21.786549 #1] INFO -- request: GET REDACTED
I, [2024-06-03T12:29:22.048730 #1] INFO -- response: Status 200
I, [2024-06-03T12:29:22.066317 #1] INFO -- : Sending telemetry with transaction id '835c0ed2-d9c2-4c6b-ac88-8f93020fd4bb'
E, [2024-06-03T12:29:22.388744 #1] ERROR -- : There was an error extracting pipelines from Azure DevOps
Message: Unable to authenticate
Please verify your access token is valid and contains the following scopes:
Build (Read), Agent Pools (Read), Code (Read), Release (Read), Service Connections (Read), Task Groups (Read), Variable Groups (Read)
(GET 401) Unauthorized: REDACTED_apis/distributedtask/tasks?api-version=5.0-preview
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/services/azure_devops/parse_response.rb:14:in `parse!'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/adapters/azure_devops/client.rb:139:in `block in fetch_all'
<internal:kernel>:187:in `loop'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/adapters/azure_devops/client.rb:132:in `fetch_all'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/adapters/azure_devops/client.rb:80:in `fetch_known_tasks'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/transformers/azure_devops/utilities/task.rb:18:in `known_tasks'
/usr/local/bundle/gems/sorbet-runtime-0.5.11108/lib/types/private/methods/call_validation.rb:256:in `bind_call'
/usr/local/bundle/gems/sorbet-runtime-0.5.11108/lib/types/private/methods/call_validation.rb:256:in `validate_call'
/usr/local/bundle/gems/sorbet-runtime-0.5.11108/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/services/azure_devops/extract_all_pipelines.rb:28:in `block in call'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/services/azure_devops/extract_all_pipelines.rb:25:in `each'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/services/azure_devops/extract_all_pipelines.rb:25:in `flat_map'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/services/azure_devops/extract_all_pipelines.rb:25:in `call'
/usr/local/bundle/gems/sorbet-runtime-0.5.11108/lib/types/private/methods/call_validation.rb:256:in `bind_call'
/usr/local/bundle/gems/sorbet-runtime-0.5.11108/lib/types/private/methods/call_validation.rb:256:in `validate_call'
/usr/local/bundle/gems/sorbet-runtime-0.5.11108/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/adapters/provider_resolver.rb:66:in `call'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/commands/audit.rb:16:in `block in call'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/logger.rb:96:in `with_progress_bar'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/commands/audit.rb:15:in `call'
/usr/local/bundle/gems/actions_importer-1.3.22039/lib/valet/subcommands/audit.rb:50:in `azure_devops'
/usr/local/bundle/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
/usr/local/bundle/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/bundle/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
/usr/local/bundle/gems/thor-1.2.2/lib/thor/invocation.rb:116:in `invoke'
/usr/local/bundle/gems/thor-1.2.2/lib/thor.rb:243:in `block in subcommand'
/usr/local/bundle/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
/usr/local/bundle/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/bundle/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
/usr/local/bundle/gems/thor-1.2.2/lib/thor/base.rb:485:in `start'
/usr/local/bundle/gems/actions_importer-1.3.22039/exe/actions-importer:19:in `<top (required)>'
/usr/local/bundle/bin/actions-importer:25:in `load'
/usr/local/bundle/bin/actions-importer:25:in `<main>'
Loading
Loading