S3/Minio Test #1589
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # adapted GA workflow from https://github.com/stackhpc/reductionist-rs | |
| --- | |
| name: S3/Minio Test | |
| on: | |
| push: | |
| branches: | |
| - main | |
| schedule: | |
| - cron: '0 0 * * *' # nightly | |
| # Required shell entrypoint to have properly configured bash shell | |
| defaults: | |
| run: | |
| shell: bash -l {0} | |
| jobs: | |
| linux-test: | |
| runs-on: "ubuntu-latest" | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| fail-fast: false | |
| name: Linux Python ${{ matrix.python-version }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - name: Export proxy | |
| run: | | |
| echo 'USE_S3 = True' >> activestorage/config.py | |
| - name: Start minio object storage | |
| run: tests/s3_exploratory/minio_scripts/minio-start | |
| - name: Wait for minio object storage to start | |
| run: | | |
| until curl -if http://localhost:9001; do | |
| sleep 1; | |
| done | |
| - name: Run Reductionist container | |
| run: docker run -it --detach --rm --net=host --name reductionist ghcr.io/stackhpc/reductionist-rs:latest | |
| - uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| activate-environment: activestorage-minio | |
| environment-file: environment.yml | |
| python-version: ${{ matrix.python-version }} | |
| miniforge-version: "latest" | |
| use-mamba: true | |
| - name: Install PyActiveStorage | |
| run: | | |
| conda --version | |
| python -V | |
| which python | |
| pip install -e . | |
| - name: Run tests | |
| run: | | |
| pytest -n 2 | |
| - name: Run S3 exploratory tests | |
| run: | | |
| pytest tests/s3_exploratory/test_s3_reduction.py --html=test-reports/s3-exploratory-report.html | |
| if: always() | |
| - name: Install pytest-monitor | |
| run: pip install pytest-monitor | |
| - name: Run S3 performance tests | |
| run: | | |
| pytest tests/s3_exploratory/test_s3_arrange_files.py | |
| pytest tests/s3_exploratory/test_s3_performance.py --db ../.pymon | |
| - name: Analyze S3 and local test performance | |
| run: python tests/s3_exploratory/parse_pymon.py | |
| - name: Stop minio object storage | |
| run: tests/s3_exploratory/minio_scripts/minio-stop | |
| if: always() | |
| #- name: Upload HTML report artifact | |
| # uses: actions/upload-artifact@v4 | |
| # with: | |
| # name: html-report | |
| # path: test-reports/ | |
| # overwrite: true | |
| # if: always() |