From ebdb65da3af457a9900ff4d80a5c750f84c35671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Gl=C3=A4=C3=9Fle?= Date: Thu, 25 Apr 2024 19:53:45 +0200 Subject: [PATCH] Debugging --- .github/workflows/build.yml | 361 +----------------------------------- 1 file changed, 1 insertion(+), 360 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e884e871..94b78e4c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,283 +4,16 @@ on: pull_request: jobs: - # Quickly check with flake8 without having to go through the whole build: - flake8: - name: "Fast flake8" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - # Check on lowest supported python version to catch syntax errors: - - uses: actions/setup-python@v5 - with: { python-version: "3.7" } - - run: pip install flake8 - - run: flake8 - - build_linux: - name: "Build: Linux (x64)" - runs-on: ubuntu-latest - strategy: - matrix: - base: - - manylinux1_x86_64 - - manylinux2014_x86_64 - - manylinux2014_aarch64 - steps: - - uses: actions/checkout@v4 - - run: echo "MADX_VERSION=$(cat MADX_VERSION)" >> $GITHUB_ENV - - - name: Download cached MAD-X build - id: madx-build-cache - uses: actions/cache@v4 - with: - path: src/MAD-X/dist - key: "\ - madx-${{ env.MADX_VERSION }}-\ - ${{ matrix.base }}-\ - patches-${{ hashFiles('.github/patch/*') }}-\ - scripts-${{ hashFiles('.github/build/linux/madx*') }}\ - " - - - run: git clone https://github.com/MethodicalAcceleratorDesign/MAD-X - src/MAD-X -b $MADX_VERSION --depth 1 - if: steps.madx-build-cache.outputs.cache-hit != 'true' - - - name: Set up QEMU for running arm64 containers - if: endsWith(matrix.base, '_aarch64') - uses: docker/setup-qemu-action@v3 - - - name: Prepare docker image - run: | - docker buildx build .github/build/linux \ - --build-arg UID=`id -u` \ - --build-arg GID=`id -g` \ - --build-arg BASE=${{ matrix.base }} \ - -t builder - shell: bash - - - name: Build MAD-X - if: steps.madx-build-cache.outputs.cache-hit != 'true' - run: | - docker run --rm --init \ - -w /mnt \ - -v `pwd`:/mnt \ - builder \ - .github/build/linux/madx.sh src/MAD-X - shell: bash - - - name: Build cpymad wheels - run: | - docker run --rm --init \ - -w /mnt \ - -v `pwd`:/mnt \ - builder \ - .github/build/linux/cpymad.sh src/MAD-X/dist - shell: bash - - - name: Upload cpymad wheels - uses: actions/upload-artifact@v4 - with: - name: dist-linux-${{ matrix.base }} - path: dist - - build_windows: - name: "Build: Windows" - runs-on: windows-latest - defaults: - run: - shell: msys2 {0} - steps: - - uses: actions/checkout@v4 - - uses: msys2/setup-msys2@v2 - with: - update: true - path-type: inherit - install: mingw-w64-ucrt-x86_64-gcc - mingw-w64-ucrt-x86_64-gcc-fortran - mingw-w64-ucrt-x86_64-cmake - - - run: echo "MSYSTEM=UCRT64" >> $GITHUB_ENV - - run: echo "MADX_VERSION=$(cat MADX_VERSION)" >> $GITHUB_ENV - - - name: Download cached MAD-X build - id: madx-build-cache - uses: actions/cache@v4 - with: - path: src/MAD-X/dist - key: "\ - madx-${{ env.MADX_VERSION }}-\ - windows-\ - patches-${{ hashFiles('.github/patch/*') }}-\ - scripts-${{ hashFiles('.github/build/windows/madx*') }}\ - " - - - run: git clone https://github.com/MethodicalAcceleratorDesign/MAD-X - src/MAD-X -b $MADX_VERSION --depth 1 - if: steps.madx-build-cache.outputs.cache-hit != 'true' - - - name: Build MAD-X - if: steps.madx-build-cache.outputs.cache-hit != 'true' - run: .github/build/windows/madx.sh src/MAD-X - - - uses: actions/setup-python@v5 - with: {python-version: "3.6"} - - run: .github/build/windows/cpymad.sh src/MAD-X/dist 3.6 - - - uses: actions/setup-python@v5 - with: {python-version: "3.7"} - - run: .github/build/windows/cpymad.sh src/MAD-X/dist 3.7 - - - uses: actions/setup-python@v5 - with: {python-version: "3.8"} - - run: .github/build/windows/cpymad.sh src/MAD-X/dist 3.8 - - - uses: actions/setup-python@v5 - with: {python-version: "3.9"} - - run: .github/build/windows/cpymad.sh src/MAD-X/dist 3.9 - - - uses: actions/setup-python@v5 - with: {python-version: "3.10"} - - run: .github/build/windows/cpymad.sh src/MAD-X/dist 3.10 - - - uses: actions/setup-python@v5 - with: {python-version: "3.11"} - - run: .github/build/windows/cpymad.sh src/MAD-X/dist 3.11 - - - uses: actions/setup-python@v5 - with: {python-version: "3.12"} - - run: .github/build/windows/cpymad.sh src/MAD-X/dist 3.12 - - - name: Upload cpymad wheels - uses: actions/upload-artifact@v4 - with: - name: dist-windows - path: dist - - build_macos: - name: "Build: MacOS" - runs-on: macos-11 - strategy: - matrix: - arch: - - x86_64 - - arm64 - steps: - - uses: actions/checkout@v4 - - run: echo "MADX_VERSION=$(cat MADX_VERSION)" >> $GITHUB_ENV - - - name: Download cached MAD-X build - id: madx-build-cache - uses: actions/cache@v4 - with: - path: src/MAD-X/dist - key: "\ - madx-${{ env.MADX_VERSION }}-\ - macos-${{ matrix.arch }}-\ - patches-${{ hashFiles('.github/patch/*') }}-\ - scripts-${{ hashFiles('.github/build/macos/madx*') }}\ - " - - - run: git clone https://github.com/MethodicalAcceleratorDesign/MAD-X - src/MAD-X -b $MADX_VERSION --depth 1 - if: steps.madx-build-cache.outputs.cache-hit != 'true' - - # Select matching Xcode and SDK, see: https://xcodereleases.com/ - - run: | - sudo xcode-select -switch /Applications/Xcode_12.5.1.app - echo "SDKROOT=$(xcrun --show-sdk-path)" >> $GITHUB_ENV - - - name: Setup gfortran - run: | - set -xeo pipefail - - if [[ ${{ matrix.arch }} == "x86_64" ]]; then - FC=gfortran-11 - LIBDIR=$(dirname $(find /usr/local/Cellar/gcc@11 -name libgfortran.dylib)) - echo "MACOSX_DEPLOYMENT_TARGET=11.0" >> $GITHUB_ENV - - elif [[ ${{ matrix.arch }} == "arm64" ]]; then - # See: https://github.com/MacPython/gfortran-install - name=gfortran-darwin-arm64-cross - curl -L -O https://github.com/isuruf/gcc/releases/download/gcc-11.3.0-2/${name}.tar.gz - sudo tar -f ${name}.tar.gz -C /opt -xzv - rm ${name}.tar.gz - - FC=$(find /opt/${name}/bin -name "*-gfortran") - LIBDIR=$(dirname $(find /opt/${name}/lib -name libgfortran.dylib)) - - # See: https://github.com/pypa/cibuildwheel/discussions/997 - echo "ARCHFLAGS=-arch arm64" >> $GITHUB_ENV - echo "_PYTHON_HOST_PLATFORM=macosx-11.0-arm64" >> $GITHUB_ENV - echo "MACOSX_DEPLOYMENT_TARGET=11.0" >> $GITHUB_ENV - fi - - LDFLAGS="-L$LIBDIR -Wl,-rpath,$LIBDIR" - - echo "FC=$FC" >> $GITHUB_ENV # for cmake - echo "LDFLAGS=$LDFLAGS" >> $GITHUB_ENV # for setuptools - echo "LIBDIR=$LIBDIR" >> $GITHUB_ENV # for delocate step - - - name: Build MAD-X - if: steps.madx-build-cache.outputs.cache-hit != 'true' - run: .github/build/macos/madx.sh src/MAD-X ${{ matrix.arch }} - - - uses: actions/setup-python@v5 - with: { python-version: "3.6" } - - run: .github/build/macos/cpymad.sh src/MAD-X/dist - - - uses: actions/setup-python@v5 - with: { python-version: "3.7" } - - run: .github/build/macos/cpymad.sh src/MAD-X/dist - - - uses: actions/setup-python@v5 - with: { python-version: "3.8" } - - run: .github/build/macos/cpymad.sh src/MAD-X/dist - - - uses: actions/setup-python@v5 - with: { python-version: "3.9" } - - run: .github/build/macos/cpymad.sh src/MAD-X/dist - - - uses: actions/setup-python@v5 - with: { python-version: "3.10" } - - run: .github/build/macos/cpymad.sh src/MAD-X/dist - - - uses: actions/setup-python@v5 - with: { python-version: "3.11" } - - run: .github/build/macos/cpymad.sh src/MAD-X/dist - - - uses: actions/setup-python@v5 - with: { python-version: "3.12" } - - run: .github/build/macos/cpymad.sh src/MAD-X/dist - - - name: Fixup wheel dependencies - run: | - pip3 install delocate - DYLD_LIBRARY_PATH=$LIBDIR delocate-wheel dist/*.whl - DYLD_LIBRARY_PATH=$LIBDIR delocate-listdeps --all dist/*.whl - - - name: Upload cpymad wheels - uses: actions/upload-artifact@v4 - with: - name: dist-macos-${{ matrix.arch }} - path: dist test: name: Tests runs-on: ${{ matrix.os.run }} - needs: [build_linux, build_windows, build_macos] strategy: matrix: os: - - {run: ubuntu-latest, dist: dist-linux-manylinux2014_x86_64} - - {run: windows-latest, dist: dist-windows} - {run: macos-latest, dist: dist-macos-x86_64} python: - - '3.7' - - '3.8' - - '3.9' - '3.10' - - '3.11' - - '3.12' defaults: run: @@ -292,96 +25,4 @@ jobs: with: python-version: ${{ matrix.python }} - - name: Download cpymad wheels - uses: actions/download-artifact@v4 - with: - name: ${{ matrix.os.dist }} - path: dist - - - name: Install cpymad from wheel - run: | - set -ex - python -m pip install -U pip || sudo python -m pip install -U pip - pip install cpymad -f dist --no-index --no-deps - pip install cpymad - - - run: pip install flake8 twine coverage coveralls pytest - - run: twine check dist/* - - run: flake8 - - - run: coverage run --source=cpymad -p -m pytest -v -k "not dframe" - - run: pip install pandas - - run: coverage run --source=cpymad -p -m pytest -v -k "dframe" - - - run: coverage combine - - run: coveralls - if: inputs.COVERALLS_REPO_TOKEN != '' - env: - COVERALLS_REPO_TOKEN: ${{ inputs.COVERALLS_REPO_TOKEN }} - - documentation: - name: Update documentation - needs: build_linux - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.9' - - uses: actions/download-artifact@v4 - with: - name: dist-linux-manylinux2014_x86_64 - path: dist - - - run: sudo apt-get install -qy graphviz - - run: pip install -U pip - - run: pip install cpymad[doc] -f dist - - run: make -C doc html - - - name: Deploy to GitHub Pages - if: success() && ( - startsWith(github.ref, 'refs/tags/v') || - github.ref == 'refs/heads/master') - uses: crazy-max/ghaction-github-pages@v4 - with: - build_dir: doc/_build/html - commit_message: Build documentation from ${{ github.ref }}@${{ github.sha }} - jekyll: false - env: - GITHUB_TOKEN: ${{ github.token }} - - upload_release: - name: Upload release - needs: test - runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/v') - - steps: - - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - - name: Fetch built distributions - uses: actions/download-artifact@v4 - with: - path: dist - - - name: Merge artifacts to single folder - run: | - mv dist/dist-*/*.whl dist/ - mv dist/dist-linux-manylinux2014_x86_64/*.tar.gz dist/ - - - name: Install twine - run: pip install twine - - - name: Publish PyPI package - env: - TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} - run: twine upload dist/*.whl dist/*.tar.gz - - - name: Create GitHub Release - uses: softprops/action-gh-release@v2 - if: startsWith(github.ref, 'refs/tags/v') - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: mxschmitt/action-tmate@v3