Skip to content

[essimaging] Publish reduced scitiff from Odin bragg edge workflow #613

[essimaging] Publish reduced scitiff from Odin bragg edge workflow

[essimaging] Publish reduced scitiff from Odin bragg edge workflow #613

Workflow file for this run

name: CI
on:
pull_request:
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
pull-requests: read
env:
# pixi environment variables, i.e. `pixi run --as-is`
PIXI_FROZEN: true
PIXI_NO_INSTALL: true
jobs:
changes:
name: Detect changes
runs-on: ubuntu-24.04
outputs:
packages: ${{ steps.filter.outputs.changes }}
steps:
- uses: actions/checkout@v6
- uses: dorny/paths-filter@v4
id: filter
with:
filters: |
essreduce:
- 'packages/essreduce/**'
- 'pyproject.toml'
- 'pixi.lock'
- 'pixi.toml'
- '.github/workflows/ci.yml'
- '.github/workflows/docs.yml'
- '.pre-commit-config.yaml'
- '.python-version'
essimaging:
- 'packages/essimaging/**'
- 'packages/essreduce/**'
- 'pyproject.toml'
- 'pixi.lock'
- 'pixi.toml'
- '.github/workflows/ci.yml'
- '.github/workflows/docs.yml'
- '.pre-commit-config.yaml'
- '.python-version'
essnmx:
- 'packages/essnmx/**'
- 'packages/essreduce/**'
- 'pyproject.toml'
- 'pixi.lock'
- 'pixi.toml'
- '.github/workflows/ci.yml'
- '.github/workflows/docs.yml'
- '.pre-commit-config.yaml'
- '.python-version'
essreflectometry:
- 'packages/essreflectometry/**'
- 'packages/essreduce/**'
- 'pyproject.toml'
- 'pixi.lock'
- 'pixi.toml'
- '.github/workflows/ci.yml'
- '.github/workflows/docs.yml'
- '.pre-commit-config.yaml'
- '.python-version'
essdiffraction:
- 'packages/essdiffraction/**'
- 'packages/essreduce/**'
- 'pyproject.toml'
- 'pixi.lock'
- 'pixi.toml'
- '.github/workflows/ci.yml'
- '.github/workflows/docs.yml'
- '.pre-commit-config.yaml'
- '.python-version'
esssans:
- 'packages/esssans/**'
- 'packages/essreduce/**'
- 'pyproject.toml'
- 'pixi.lock'
- 'pixi.toml'
- '.github/workflows/ci.yml'
- '.github/workflows/docs.yml'
- '.pre-commit-config.yaml'
- '.python-version'
essspectroscopy:
- 'packages/essspectroscopy/**'
- 'packages/essreduce/**'
- 'pyproject.toml'
- 'pixi.lock'
- 'pixi.toml'
- '.github/workflows/ci.yml'
- '.github/workflows/docs.yml'
- '.pre-commit-config.yaml'
- '.python-version'
formatting:
name: Formatting and static analysis
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: prefix-dev/setup-pixi@v0.9.4
with:
pixi-version: v0.68.0
frozen: true
environments: lint
- run: pixi run -e lint lint
test:
name: Test ${{ matrix.package }}
needs: [ changes, formatting ]
if: needs.changes.outputs.packages != '[]'
strategy:
fail-fast: false
matrix:
package: ${{ fromJSON(needs.changes.outputs.packages) }}
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: prefix-dev/setup-pixi@v0.9.4
with:
pixi-version: v0.68.0
frozen: true
environments: ${{ matrix.package }}
- name: Run tests
run: pixi run -e ${{ matrix.package }} test ${{ matrix.package }}
docs:
name: Docs ${{ matrix.package }}
needs: [ changes, formatting ]
if: needs.changes.outputs.packages != '[]'
strategy:
fail-fast: false
matrix:
package: ${{ fromJSON(needs.changes.outputs.packages) }}
permissions:
contents: write
uses: ./.github/workflows/docs.yml
with:
package: ${{ matrix.package }}
publish: false
linkcheck: false
report:
name: Report Job Status
needs: [ changes, formatting, test, docs ]
if: always() # Should always run regardless of the state of the needs jobs.
runs-on: ubuntu-24.04
steps:
- name: Report Job Success
run: echo "All Tests Succeeded"
if: |
needs.formatting.result == 'success' &&
(needs.test.result == 'skipped' || needs.test.result == 'success') &&
(needs.docs.result == 'skipped' || needs.docs.result == 'success')
- name: Report Job Failure
run: |
echo "Not All Tests Succeeded..."
exit 1
if: |
!( needs.formatting.result == 'success' &&
(needs.test.result == 'skipped' || needs.test.result == 'success') &&
(needs.docs.result == 'skipped' || needs.docs.result == 'success') )