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

Add s390x test workflow #3065

Closed
wants to merge 2 commits into from
Closed

Conversation

viusic
Copy link

@viusic viusic commented Feb 16, 2024

Pull Request Summary

This pull request adds a s390x test workflow to address issue #3044.

Purpose

The purpose of this change is to enable testing on the s390x architecture using QEMU and Debian.

Details of Changes

  • Added .github/workflows/s390x_test.yml for s390x testing.
  • Configured QEMU and Debian s390x environment setup.

Issues Resolved

Closes #3044

Request for Review

I appreciate your time in reviewing this pull request. Please let me know if there are any suggested improvements or changes.

@skoudoro
Copy link
Member

Hi @viusic,

Thank you for doing this. After a quick look, It looks like a good beginning but it is missing DIPY installation and test.
you might have to test that locally and adjust some tests.

@viusic
Copy link
Author

viusic commented Feb 18, 2024

Hi @skoudoro,
I have added DIPY installation and test to the s390x_test.yml file. Please do let me know if there is a scope of improving the code.

Copy link
Member

@skoudoro skoudoro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @viusic,

Thank you for your update. See some comments below.


steps:
- name: Checkout Repository
uses: actions/checkout@v2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you update the checkout version

run: |
sudo debootstrap --arch s390x sid /srv/chroot/sid-390x http://ftp.fr.debian.org/debian

- name: Install Dependencies
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to install the dependencies, you will have to use what you just checkout above

sudo chroot /srv/chroot/sid-390x apt-get install -y python3 python3-pip
sudo chroot /srv/chroot/sid-390x pip3 install cython numpy==1.22.4 scipy==1.8 nibabel==3.0.0 h5py==3.1.0 tqdm

- name: Install DIPY
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to install dIPY, you will have to use what you just checkout above

Comment on lines +38 to +64
- name: Run Compatibility Tests
run: |
sudo chroot /srv/chroot/sid-390x python3 -m dipy.test -k compat

- name: Run Optional Tests
run: |
sudo chroot /srv/chroot/sid-390x python3 -m dipy.test -k optional

- name: Run Parallel Tests
run: |
sudo chroot /srv/chroot/sid-390x python3 -m dipy.test -k parallel

- name: Run Pre Tests
run: |
sudo chroot /srv/chroot/sid-390x python3 -m dipy.test -k pre

- name: Run Template Tests
run: |
sudo chroot /srv/chroot/sid-390x python3 -m dipy.test -k template

- name: Run Visualization Tests
run: |
sudo chroot /srv/chroot/sid-390x python3 -m dipy.test -k viz

- name: Run General Tests
run: |
sudo chroot /srv/chroot/sid-390x python3 -m dipy.test
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure this syntax work for DIPY. Can you check it locally

@skoudoro
Copy link
Member

Hi @viusic,

Do you have an update on this? thank you for your future feedback

@viusic
Copy link
Author

viusic commented Feb 23, 2024

hi @skoudoro,
Over the past few days, I've been actively working on the project and have made some significant changes. I've updated:

  1. the updated checkout version:
    jobs:
    test:
    runs-on: self-hosted
    strategy:
    matrix:
    architecture: [ s390x ]
    steps:
    • name: Checkout Repository
      uses: actions/checkout@v4
      with:
      repository: 'dipy/dipy'
      ref: 'master'
      fetch-depth: 1

I have designed it to run on a self-hosted runner, which means it can be run on any machine that meets the required hardware and software specifications. The workflow is also configured to run on a matrix of different architectures, including s390x.

  1. to install dependencies:
    - name: Install Dependencies
    run: |
    sudo chroot /srv/chroot/sid-390x apt-get update
    sudo chroot /srv/chroot/sid-390x apt-get install -y build-essential
    sudo chroot /srv/chroot/sid-390x apt-get install -y libc6-dev-s390x
    sudo chroot /srv/chroot/sid-390x apt-get install -y libstdc++-6-dev-s390x
    sudo chroot /srv/chroot/sid-390x apt-get install -y libgcc-s1-s390x
    sudo chroot /srv/chroot/sid-390x apt-get install -y python3 python3-pip
    sudo chroot /srv/chroot/sid-390x pip3 install -r /srv/chroot/sid-390x/dipy/requirements.txt

  2. to install DIPY:
    - name: Install DIPY
    run: |
    cd /srv/chroot/sid-390x/dipy
    sudo chroot /srv/chroot/sid-390x python3 setup.py install

During this time, I've been investing some of my efforts in crafting a proposal for GSoC'24, specifically within our organization. Exploring the intricacies of DIPY while contributing has only deepened my interest in the project. I believe this investment will not only contribute positively to the proposal but also enhance my understanding of DIPY, making me more effective in my contributions.

I am currently fine-tuning the syntax for running test suites and conducting local tests to ensure everything is set up correctly. I anticipate resolving any remaining issues by tomorrow.

I appreciate your understanding and patience during this process. If you have any specific guidance or suggestions, please feel free to share them.

Thank you for your support.

@skoudoro
Copy link
Member

I have designed it to run on a self-hosted runner, which means it can be run on any machine that meets the required hardware and software specifications. The workflow is also configured to run on a matrix of different architectures, including s390x.

What does it means ?

I am currently fine-tuning the syntax for running test suites and conducting local tests to ensure everything is set up correctly. I anticipate resolving any remaining issues by tomorrow.

ok

I appreciate your understanding and patience during this process. If you have any specific guidance or suggestions, please feel free to share them.

See my review above

For now, I will close this PR. Feel free to reopen it when it is ready and you succeed to finalize the remaining issues. Thank you again for working on this.

@skoudoro skoudoro closed this Feb 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

create a s390x github action
2 participants