From c1db2c8958b89cd3d0460fe3bedfcd7d79ec915c Mon Sep 17 00:00:00 2001 From: Alice Date: Thu, 21 May 2026 15:10:19 +0200 Subject: [PATCH] updated github actions versions to run on node 24 --- .github/workflows/build_documentation.yml | 126 ++++++++++++++++++++ .github/workflows/build_wheel.yml | 10 +- .github/workflows/cmake.yaml | 4 +- .github/workflows/conda_deploy_library.yaml | 47 ++++++++ 4 files changed, 180 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/build_documentation.yml create mode 100644 .github/workflows/conda_deploy_library.yaml diff --git a/.github/workflows/build_documentation.yml b/.github/workflows/build_documentation.yml new file mode 100644 index 000000000..ebbce9606 --- /dev/null +++ b/.github/workflows/build_documentation.yml @@ -0,0 +1,126 @@ +name: Build and upload Documentation + +on: + workflow_dispatch: + pull_request: + branches: + - developer + - main + push: + branches: + - developer + - main + release: + types: + - published + +env: + BUILD_TYPE: RELEASE + +permissions: + contents: write # Required to push to gh-pages branch + pages: write # Required for GitHub Pages deployment + id-token: write # Required for GitHub Pages deployment + +jobs: + build-and-deploy: + strategy: + matrix: + patform: [ubuntu-latest] + python-version: ["3.12"] + runs-on: ${{ matrix.patform }} + + defaults: + run: + shell: "bash -l {0}" + + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 # Fetch all history for proper git operations + token: ${{ secrets.GITHUB_TOKEN }} # Use the default token + + # Extract release version (if triggered by release) + - name: Get Release Version + id: version + run: | + if [ "${{ github.event_name }}" == "release" ]; then + VERSION="${{ github.event.release.tag_name }}" + echo "version=${VERSION}" >> $GITHUB_OUTPUT + else + echo "version=developer" >> $GITHUB_OUTPUT + fi + + - name: Install System Packages + uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: libhdf5-dev doxygen libfmt-dev + version: 1.0 + + - name: Setup Python + uses: actions/setup-python@v6 + with: + python-version: 3.12 + cache: 'pip' + + - name: Install Python Packages + run: pip install sphinx sphinx_rtd_theme breathe pyyaml jinja2 numpy + + + - name: Build Documentation + run: | + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DSLS_BUILD_DOCS=ON -DSLS_USE_HDF5=ON -DSLS_USE_PYTHON=ON .. + make -j4 + make docs + + # Update main index if this is a release + - name: Update version index + if: github.event_name == 'release' + run: | + python docs/main_index/render_main_index.py \ + --version "${{ steps.version.outputs.version }}" \ + --date "$(date +'%d.%m.%Y')" + + - name: Checkout gh-pages + uses: actions/checkout@v6 + with: + ref: gh-pages + path: gh-pages + + + - name: Copy documentation and Release notes to versioned folder + if: github.event_name == 'release' || (github.event_name == 'push') + run: | + VERSION="${{ steps.version.outputs.version }}" + mkdir -p "gh-pages/${VERSION}" + cp -r build/docs/html/. "gh-pages/${VERSION}/" + cp docs/main_index/index.html gh-pages/index.html + cp docs/main_index/index.html gh-pages/_sources/index.html.txt + if [ "${{ github.event_name }}" == "release" ]; then + cp RELEASE.md "gh-pages/releases/RELEASE_v${VERSION}.md" + fi + + - name: Commit and Push changes to gh-pages + if: github.event_name == 'release' || (github.event_name == 'push') + run: | + cd gh-pages + git config --global user.name 'github-actions' + git config --global user.email 'github-actions@github.com' + git add . + git commit -m "Update Documentation for ${{ steps.version.outputs.version }}" + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git + git push origin gh-pages + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + + + + + + + + + diff --git a/.github/workflows/build_wheel.yml b/.github/workflows/build_wheel.yml index f131e7775..d6f41ee40 100644 --- a/.github/workflows/build_wheel.yml +++ b/.github/workflows/build_wheel.yml @@ -20,12 +20,12 @@ jobs: os: [ubuntu-latest,] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Build wheels run: pipx run cibuildwheel==2.23.0 - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v7 with: name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} path: ./wheelhouse/*.whl @@ -34,12 +34,12 @@ jobs: name: Build source distribution runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Build sdist run: pipx run build --sdist - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v7 with: name: cibw-sdist path: dist/*.tar.gz @@ -54,7 +54,7 @@ jobs: # or, alternatively, upload to PyPI on every tag starting with 'v' (remove on: release above to use this) # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v7 with: # unpacks all CIBW artifacts into dist/ pattern: cibw-* diff --git a/.github/workflows/cmake.yaml b/.github/workflows/cmake.yaml index 1cf8154d2..739db2601 100644 --- a/.github/workflows/cmake.yaml +++ b/.github/workflows/cmake.yaml @@ -14,8 +14,8 @@ jobs: runs-on: ubuntu-latest name: Configure and build using cmake steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: python-version: 3.12 cache: 'pip' diff --git a/.github/workflows/conda_deploy_library.yaml b/.github/workflows/conda_deploy_library.yaml new file mode 100644 index 000000000..68d046aff --- /dev/null +++ b/.github/workflows/conda_deploy_library.yaml @@ -0,0 +1,47 @@ +name: Build and deploy slsdetlib + +on: + release: + types: + - published + +jobs: + build: + strategy: + fail-fast: false + matrix: + platform: [ubuntu-latest, ] # macos-12, windows-2019] + python-version: ["3.12",] + + runs-on: ${{ matrix.platform }} + + # The setup-miniconda action needs this to activate miniconda + defaults: + run: + shell: "bash -l {0}" + + steps: + - uses: actions/checkout@v6 + + - name: Get conda + uses: conda-incubator/setup-miniconda@v4 + with: + python-version: ${{ matrix.python-version }} + channels: conda-forge + + - name: Prepare + run: conda install conda-build conda-verify pytest anaconda-client + + - name: Enable upload + run: conda config --set anaconda_upload yes + + - name: Build + env: + CONDA_TOKEN: ${{ secrets.CONDA_TOKEN }} + run: conda-build conda-recipes/main-library --user slsdetectorgroup --token ${CONDA_TOKEN} --output-folder build_output + + - name: Upload all Conda to github as artifacts + uses: actions/upload-artifact@v7 + with: + name: conda-packages + path: build_output/** # Uploads all packages \ No newline at end of file