add diagnostic widget #430
Workflow file for this run
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
| name: Tests, Package, and Deployment | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: [next, qa, main] | |
| tags: ["v*"] | |
| # cancel previous job if new commit is pushed | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| PKG_NAME: quicknxs | |
| jobs: | |
| ################# | |
| ### Run Tests ### | |
| ################# | |
| tests: | |
| runs-on: ubuntu-24.04 | |
| defaults: | |
| run: | |
| shell: bash -el {0} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Pixi | |
| uses: prefix-dev/setup-pixi@v0.9.4 | |
| - name: Audit dependencies | |
| run: pixi run audit-deps | |
| - name: Generate cache key for submodule | |
| id: generate-cache-key | |
| run: | | |
| # Get the submodule commit SHA | |
| SUBMODULE_SHA=$(git submodule status | awk '{print $1}' | sha256sum | cut -d ' ' -f 1) | |
| echo "SUBMODULE_KEY=$SUBMODULE_SHA" >> $GITHUB_ENV | |
| - name: Restore/save LFS files in cache | |
| id: cache-lfs | |
| uses: actions/cache@v5 | |
| with: | |
| path: test/data/quicknxs-data/ | |
| key: submodule-${{ env.SUBMODULE_KEY }} | |
| - name: Pull LFS files for the submodule | |
| if: steps.cache-lfs.outputs.cache-hit != 'true' | |
| run: | | |
| git submodule update --init | |
| git lfs pull | |
| - name: Unit test with code coverage | |
| run: pixi run test -vv --cov=src --cov-report=xml --cov-report=term | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| verbose: true | |
| token: ${{ secrets.CODECOV_TOKEN }} # required | |
| ############################## | |
| ### Package and Deployment ### | |
| ############################## | |
| build: | |
| runs-on: ubuntu-24.04 | |
| defaults: | |
| run: | |
| shell: bash -el {0} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 100 | |
| fetch-tags: true | |
| ref: ${{ github.ref }} | |
| - name: Setup Pixi | |
| uses: prefix-dev/setup-pixi@v0.9.4 | |
| - name: Build conda package | |
| run: | | |
| pixi run conda-build | |
| mkdir -p /tmp/local-channel/noarch | |
| cp *.conda /tmp/local-channel/noarch/ | |
| # extract version from the package file name "quicknxs-<version>-<build>.conda" | |
| echo "PKG_VERSION=$(ls *.conda | cut -d'-' -f2)" >> $GITHUB_ENV | |
| - name: Verify Conda Package | |
| uses: neutrons/conda-verify@v0.1.2 | |
| with: | |
| python-version: "3.11" | |
| local-channel: /tmp/local-channel | |
| package-name: ${{ env.PKG_NAME }}=${{ env.PKG_VERSION }} # install exact version | |
| extra-channels: neutrons mantid oncat | |
| extra-commands: | | |
| python -c "import mr_reduction" | |
| python -c "import mantid" | |
| - name: upload conda package as artifact | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: artifact-conda-package | |
| path: ${{ env.PKG_NAME }}-*.conda | |
| publish: | |
| runs-on: ubuntu-24.04 | |
| needs: [tests, build] | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| defaults: | |
| run: | |
| shell: bash -el {0} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 100 | |
| fetch-tags: true | |
| ref: ${{ github.ref }} | |
| - name: Setup Pixi | |
| uses: prefix-dev/setup-pixi@v0.9.4 | |
| - name: Download conda package artifact | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: artifact-conda-package | |
| - name: Upload package to anaconda | |
| env: | |
| ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }} | |
| IS_RC: ${{ contains(github.ref, 'rc') }} | |
| run: | | |
| # label is main or rc depending on the tag-name | |
| CONDA_LABEL="main" | |
| if [ "${IS_RC}" = "true" ]; then CONDA_LABEL="rc"; fi | |
| echo pushing ${{ github.ref }} with label $CONDA_LABEL | |
| pixi run anaconda upload --label $CONDA_LABEL --user neutrons ${{ env.PKG_NAME }}-*.conda | |
| # Trigger GitLab dev deploy pipeline | |
| deploy-dev: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| if: github.ref == 'refs/heads/next' | |
| steps: | |
| - name: Get Environment Name | |
| uses: neutrons/branch-mapper@main | |
| id: env_name | |
| with: | |
| prefix: quicknxs | |
| - name: Trigger Dev Deploy | |
| # use https://github.com/eic/trigger-gitlab-ci/pull/14 until merged | |
| uses: eic/trigger-gitlab-ci@d984d8d53d871d2fdc1325639d94322da6e8747f | |
| id: trigger | |
| with: | |
| url: https://code.ornl.gov | |
| project_id: 18088 | |
| ref_name: main | |
| token: ${{ secrets.GITLAB_DEPLOY_TOKEN }} | |
| - name: Annotate commit | |
| uses: peter-evans/commit-comment@v4 | |
| with: | |
| body: | | |
| GitLab pipeline for ${{ steps.env_name.outputs.name }} has been submitted for this commit: ${{ steps.trigger.outputs.web_url }} |