From 5c7feb96a9ab2921079847d6567983e6727a8b21 Mon Sep 17 00:00:00 2001 From: Leclerc Clement Date: Tue, 15 Oct 2024 13:07:31 +0200 Subject: [PATCH] add slack notification Signed-off-by: Leclerc Clement --- .github/workflows/dev-ci.yml | 212 ---------------------- .github/workflows/full-ci.yml | 287 ------------------------------ .github/workflows/release-ci.yml | 138 -------------- .github/workflows/snapshot-ci.yml | 2 + 4 files changed, 2 insertions(+), 637 deletions(-) delete mode 100644 .github/workflows/dev-ci.yml delete mode 100644 .github/workflows/full-ci.yml delete mode 100644 .github/workflows/release-ci.yml diff --git a/.github/workflows/dev-ci.yml b/.github/workflows/dev-ci.yml deleted file mode 100644 index 0031cb8471..0000000000 --- a/.github/workflows/dev-ci.yml +++ /dev/null @@ -1,212 +0,0 @@ -name: Dev CI - -on: - pull_request: - -jobs: - manylinux_build: - name: Build linux ${{ matrix.python.name }} wheel - runs-on: ubuntu-latest - container: quay.io/pypa/manylinux2014_x86_64:2024-10-07-1887322 - env: - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true - strategy: - matrix: - python: - - { - name: cp38, - abi: cp38, - version: '3.8', - } - - steps: - - name: Install Maven - run: | - curl --fail --silent --show-error https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz -o /tmp/apache-maven-3.9.6-bin.tar.gz - tar xf /tmp/apache-maven-*.tar.gz -C /opt - echo /opt/apache-maven-3.9.6/bin >> $GITHUB_PATH - - - name: Setup GraalVM - uses: graalvm/setup-graalvm@v1.1.5 # !!! this is last version compatible with manylinux 2014 - with: - java-version: '17' - distribution: 'graalvm' - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout sources - uses: actions/checkout@v3 - with: - submodules: true - - - name: Setup path - run: echo "/opt/python/${{ matrix.python.name }}-${{ matrix.python.abi }}/bin/" >> $GITHUB_PATH - - - name: Install dependencies - run: pip3 install -r requirements.txt - - - name: Build wheel - run: | - python3 setup.py bdist_wheel - auditwheel repair dist/*.whl - - - name: Install wheel - run: pip3 install wheelhouse/*.whl --user - - - name: Run basic pypowsybl import - working-directory: ./tests - run: python3 basic_import_test.py - - - name: Run tests - working-directory: ./tests # Run in subdir to use installed lib, not sources - run: | - pytest - - - name: Type checking - run: mypy -p pypowsybl - - - name: Dev install # In order to generate coverage and linting, we need to install in sources - run: | - pip3 uninstall -y pypowsybl - python3 setup.py develop - - - name: Generate coverage - run: | - coverage run -m pytest tests/ - coverage xml - - - name: Linting - run: pylint pypowsybl - - - name: Sonar analysis - uses: sonarsource/sonarcloud-github-action@v2.0.2 - env: - GITHUB_TOKEN: ${{ secrets.REPO_ACCESS_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - with: - args: | - -Dsonar.python.coverage.reportPaths=coverage.xml - - - name: Run doc examples - working-directory: ./docs - run: make html doctest SPHINXOPTS="-W" - - - name: Test standalone cpp build - shell: bash - working-directory: ./dist - run: | #Unzip binaries.zip produced by setup.py and try to build only the cpp API and bindings with it - unzip binaries.zip && mkdir build && cd build - cmake $GITHUB_WORKSPACE/cpp -DBUILD_PYPOWSYBL_JAVA=OFF -DPYPOWSYBL_JAVA_LIBRARY_DIR=$GITHUB_WORKSPACE/dist/lib -DPYPOWSYBL_JAVA_INCLUDE_DIR=$GITHUB_WORKSPACE/dist/include - cmake --build . --config Release - - macos_windows_build: - name: Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel - runs-on: ${{ matrix.config.os }} - strategy: - matrix: - config: - - { - name: darwin, - os: macos-12, - macosx_deployment_target: "10.16", # to ensure pip finds wheel when Big Sur is configured to return 10.16 as version instead of 11.0 - bdist_wheel_args: "--plat-name macosx-11.0-x86_64", # needed to avoid the wheel to be named -universal2 - } - - { - name: darwin-arm64, - os: macos-14, - macosx_deployment_target: "11", # first arm64 version of macosx - bdist_wheel_args: "--plat-name macosx-11.0-arm64", # needed to avoid the wheel to be named -universal2 - } - - { - name: windows, - os: windows-2022, - } - python: - - { - name: cp38, - version: '3.8', - } - - steps: - - name: Setup GraalVM - uses: graalvm/setup-graalvm@v1 - with: - java-version: '17' - distribution: 'graalvm' - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout sources - uses: actions/checkout@v3 - with: - submodules: true - - - name: Setup Python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python.version }} - - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip - python -m pip install -r requirements.txt - - - name: Build wheel - env: - MACOSX_DEPLOYMENT_TARGET: ${{ matrix.config.macosx_deployment_target }} - run: python setup.py bdist_wheel ${{ matrix.config.bdist_wheel_args }} - - - name: Install wheel - shell: bash - run: python -m pip install dist/*.whl --user - - - name: Run basic pypowsybl import - working-directory: ./tests - run: python3 basic_import_test.py - - - name: Run tests - working-directory: ./tests - run: python3 -m pytest - - - name: Type checking - run: mypy -p pypowsybl - - - name: Run doc examples - working-directory: ./docs - run: make html doctest SPHINXOPTS="-W" - - - name: Test standalone cpp build - shell: bash - working-directory: ./dist - run: | #Unzip binaries.zip produced by setup.py and try to build only the cpp API and bindings with it - unzip binaries.zip && mkdir build && cd build - cmake $GITHUB_WORKSPACE/cpp -DBUILD_PYPOWSYBL_JAVA=OFF -DPYPOWSYBL_JAVA_LIBRARY_DIR=$GITHUB_WORKSPACE/dist/lib -DPYPOWSYBL_JAVA_INCLUDE_DIR=$GITHUB_WORKSPACE/dist/include - cmake --build . --config Release - - build: - name: Run SonarCloud analysis for Java code - runs-on: ubuntu-latest - - steps: - - name: Checkout sources - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - - name: Set up JDK 17 - uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4.0.0 - with: - distribution: 'temurin' - java-version: '17' - - - name: Build with Maven (Ubuntu) - working-directory: ./java - run: > - mvn --batch-mode install - - - name: Run SonarCloud analysis - working-directory: ./java - run: > - mvn --batch-mode -DskipTests sonar:sonar - -Dsonar.host.url=https://sonarcloud.io - -Dsonar.organization=powsybl-ci-github - -Dsonar.projectKey=powsybl_pypowsybl-java - env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - diff --git a/.github/workflows/full-ci.yml b/.github/workflows/full-ci.yml deleted file mode 100644 index b44ad749d6..0000000000 --- a/.github/workflows/full-ci.yml +++ /dev/null @@ -1,287 +0,0 @@ -name: Full CI - -on: - push: - branches: - - main - - 'release-v**' - - 'full-sonar-analysis-**' - tags: - - 'v[0-9]+.[0-9]+.[0-9]+*' - -jobs: - manylinux_build: - name: Build linux ${{ matrix.python.name }} wheel - runs-on: ubuntu-latest - container: quay.io/pypa/manylinux2014_x86_64:2024-10-07-1887322 - env: - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true - strategy: - matrix: - python: - - { - name: cp38, - abi: cp38, - version: '3.8' - } - - { - name: cp39, - abi: cp39, - version: '3.9' - } - - { - name: cp310, - abi: cp310, - version: '3.10' - } - - { - name: cp311, - abi: cp311, - version: '3.11' - } - - { - name: cp312, - abi: cp312, - version: '3.12' - } - - { - name: cp313, - abi: cp313, - version: '3.13' - } - - steps: - - name: Install Maven - run: | - curl --fail --silent --show-error https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz -o /tmp/apache-maven-3.9.6-bin.tar.gz - tar xf /tmp/apache-maven-*.tar.gz -C /opt - echo /opt/apache-maven-3.9.6/bin >> $GITHUB_PATH - - - name: Setup GraalVM - uses: graalvm/setup-graalvm@v1.1.5 # !!! this is last version compatible with manylinux 2014 - with: - java-version: '17' - distribution: 'graalvm' - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout sources - uses: actions/checkout@v3 - with: - submodules: true - - - name: Setup path - run: echo "/opt/python/${{ matrix.python.name }}-${{ matrix.python.abi }}/bin/" >> $GITHUB_PATH - - - name: Install dependencies - run: pip3 install -r requirements.txt - - - name: Build wheel - run: | - python3 setup.py bdist_wheel - auditwheel repair dist/*.whl - - - name: Install wheel - run: pip3 install wheelhouse/*.whl --user - - - name: Run basic pypowsybl import - working-directory: ./tests - run: python3 basic_import_test.py - - - name: Run tests - working-directory: ./tests # Run in subdir to use installed lib, not sources - run: | - pytest - - - name: Type checking - run: mypy -p pypowsybl - - - name: Dev install # In order to generate coverage and linting, we need to install in sources - if: matrix.python.name == 'cp39' - run: | - pip3 uninstall -y pypowsybl - python3 setup.py develop - - - name: Generate coverage - if: matrix.python.name == 'cp39' - run: | - coverage run -m pytest tests/ - coverage xml - - - name: Linting - if: matrix.python.name == 'cp39' - run: pylint pypowsybl - - - name: Sonar analysis - if: matrix.python.name == 'cp39' - uses: sonarsource/sonarcloud-github-action@v2.0.2 - env: - GITHUB_TOKEN: ${{ secrets.REPO_ACCESS_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - with: - args: | - -Dsonar.python.coverage.reportPaths=coverage.xml - - - name: Run doc examples - working-directory: ./docs - run: make html doctest SPHINXOPTS="-W" - - - name: Upload wheel - uses: actions/upload-artifact@v3 - with: - name: pypowsybl-wheel-linux-${{ matrix.python.name }} - path: wheelhouse/*.whl - - macos_windows_build: - name: Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel - runs-on: ${{ matrix.config.os }} - strategy: - matrix: - config: - - { - name: darwin, - os: macos-12, - macosx_deployment_target: "10.16", # to ensure pip finds wheel when Big Sur is configured to return 10.16 as version instead of 11.0 - bdist_wheel_args: "--plat-name macosx-11.0-x86_64", # needed to avoid the wheel to be named -universal2 - } - - { - name: darwin-arm64, - os: macos-14, - macosx_deployment_target: "11", # first arm64 version of macosx - bdist_wheel_args: "--plat-name macosx-11.0-arm64", # needed to avoid the wheel to be named -universal2 - } - - { - name: windows, - os: windows-2022, - } - python: - - { - name: cp38, - version: '3.8', - } - - { - name: cp39, - version: '3.9', - } - - { - name: cp310, - version: '3.10', - } - - { - name: cp311, - version: '3.11', - } - - { - name: cp312, - version: '3.12', - } - - { - name: cp313, - version: '3.13', - } - - steps: - - name: Setup GraalVM - uses: graalvm/setup-graalvm@v1 - with: - java-version: '17' - distribution: 'graalvm' - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout sources - uses: actions/checkout@v3 - with: - submodules: true - - - name: Setup Python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python.version }} - - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip - python -m pip install -r requirements.txt - - - name: Build wheel - env: - MACOSX_DEPLOYMENT_TARGET: ${{ matrix.config.macosx_deployment_target }} - run: python setup.py bdist_wheel ${{ matrix.config.bdist_wheel_args }} - - - name: Install wheel - shell: bash - run: python -m pip install dist/*.whl --user - - - name: Run basic pypowsybl import - working-directory: ./tests - run: python3 basic_import_test.py - - - name: Run tests - working-directory: ./tests - run: python3 -m pytest - - - name: Type checking - run: mypy -p pypowsybl - - - name: Run doc examples - working-directory: ./docs - run: make html doctest SPHINXOPTS="-W" - - - name: Upload wheel - uses: actions/upload-artifact@v3 - with: - name: pypowsybl-wheel-${{ matrix.config.name }}-${{ matrix.python.name }} - path: dist/*.whl - - package: - name: Package wheels - runs-on: ubuntu-latest - needs: [manylinux_build, macos_windows_build] - - steps: - - name: Download wheels - uses: actions/download-artifact@v3 - with: - path: download - - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - name: pypowsybl-wheels - path: | - download/**/*.whl - - - name: Release on PyPi - if: startsWith(github.ref, 'refs/tags/') - shell: bash - run: | - python -m pip install --user --upgrade twine - python -m twine upload --username __token__ --password ${{ secrets.PYPI_TOKEN }} download/*/*.whl - - build: - name: Run SonarCloud analysis for Java code - runs-on: ubuntu-latest - - steps: - - name: Checkout sources - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - - name: Set up JDK 17 - uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4.0.0 - with: - distribution: 'temurin' - java-version: '17' - - - name: Build with Maven (Ubuntu) - working-directory: ./java - run: > - mvn --batch-mode install - - - name: Run SonarCloud analysis - working-directory: ./java - run: > - mvn --batch-mode -DskipTests sonar:sonar - -Dsonar.host.url=https://sonarcloud.io - -Dsonar.organization=powsybl-ci-github - -Dsonar.projectKey=powsybl_pypowsybl - env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release-ci.yml b/.github/workflows/release-ci.yml deleted file mode 100644 index f9b7f34294..0000000000 --- a/.github/workflows/release-ci.yml +++ /dev/null @@ -1,138 +0,0 @@ -name: Release - -on: - release: - types: - - created - -permissions: - contents: write - -jobs: - manylinux_build: - name: Build linux ${{ matrix.python.name }} wheel - runs-on: ubuntu-latest - container: quay.io/pypa/manylinux2014_x86_64:2024-10-07-1887322 - env: - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true - strategy: - matrix: - python: - - { - name: cp38, - abi: cp38, - version: '3.8', - } - - steps: - - name: Install Maven - run: | - curl --fail --silent --show-error https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz -o /tmp/apache-maven-3.9.6-bin.tar.gz - tar xf /tmp/apache-maven-*.tar.gz -C /opt - echo /opt/apache-maven-3.9.6/bin >> $GITHUB_PATH - - - name: Setup GraalVM - uses: graalvm/setup-graalvm@v1.1.5 # !!! this is last version compatible with manylinux 2014 - with: - java-version: '17' - distribution: 'graalvm' - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout sources - uses: actions/checkout@v3 - with: - submodules: true - - - name: Setup path - run: echo "/opt/python/${{ matrix.python.name }}-${{ matrix.python.abi }}/bin/" >> $GITHUB_PATH - - - name: Install dependencies - run: pip3 install -r requirements.txt - - - name: Build wheel - run: | - python3 setup.py bdist_wheel - auditwheel repair dist/*.whl - - - name: Install wheel - run: pip3 install wheelhouse/*.whl --user - - - name: Run basic pypowsybl import - working-directory: ./tests - run: python3 basic_import_test.py - - - name: Upload binaries - uses: actions/upload-release-asset@v1.0.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./dist/binaries.zip - asset_name: binaries-${{ github.event.release.tag_name }}-linux.zip - asset_content_type: application/zip - - macos_windows_build: - name: Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel - runs-on: ${{ matrix.config.os }} - strategy: - matrix: - config: - - { - name: darwin, - os: macos-12, - } - - { - name: windows, - os: windows-2022, - } - python: - - { - name: cp38, - version: '3.8', - } - - steps: - - name: Setup GraalVM - uses: graalvm/setup-graalvm@v1 - with: - java-version: '17' - distribution: 'graalvm' - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout sources - uses: actions/checkout@v3 - with: - submodules: true - - - name: Setup Python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python.version }} - - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip - python -m pip install -r requirements.txt - - - name: Build wheel - env: - MACOSX_DEPLOYMENT_TARGET: "10.16" # to ensure pip finds wheel when Big Sur is configured to return 10.16 as version instead of 11.0 - run: python setup.py bdist_wheel - - - name: Install wheel - shell: bash - run: python -m pip install dist/*.whl --user - - - name: Run basic pypowsybl import - working-directory: ./tests - run: python3 basic_import_test.py - - - name: Upload binaries - uses: actions/upload-release-asset@v1.0.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./dist/binaries.zip - asset_name: binaries-${{ github.event.release.tag_name }}-${{ matrix.config.name }}.zip - asset_content_type: application/zip \ No newline at end of file diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index ac76f39289..244dd3c144 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -13,6 +13,8 @@ jobs: matrix: config: - { name: ubuntu, os: ubuntu-latest} + - { name: windows, os: windows-2022 } + python: - { name: cp313, version: '3.13' } fail-fast: false