Skip to content

Bump ansys/actions from 4 to 5 #801

Bump ansys/actions from 4 to 5

Bump ansys/actions from 4 to 5 #801

Workflow file for this run

name: GitHub CI
on:
workflow_dispatch:
pull_request:
push:
tags:
- "*"
branches:
- main
env:
MAIN_PYTHON_VERSION: '3.10'
DOCUMENTATION_CNAME: 'hps.docs.pyansys.com'
PACKAGE_NAME: 'ansys-hps-client'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
style:
name: Code style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools tox
- name: Test with tox
run: tox -e style
doc-style:
name: Documentation Style Check
runs-on: ubuntu-latest
steps:
- name: PyAnsys documentation style checks
uses: ansys/actions/doc-style@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
tests:
name: Quick tests and coverage
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
cfg: [
{ python-version: '3.10', toxenv: 'py310' },
]
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.cfg.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.cfg.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools tox tox-gh-actions
- uses: dawidd6/action-download-artifact@v2
with:
workflow: main.yaml
name: docker-compose-internal
path: docker-compose-artifact/
branch: main
repo: ansys-internal/rep-deployments
workflow_conclusion: success
search_artifacts: false
github_token: ${{secrets.PYANSYS_CI_BOT_TOKEN}}
- uses: KengoTODA/actions-setup-docker-compose@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Login in Github Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io/ansys-internal
username: pyansys-ci-bot
password: ${{ secrets.PYANSYS_CI_BOT_TOKEN }}
- name: Start services
run: |
ls -la
tar -xvzf docker-compose-internal.tar.gz
cd docker-compose
FSGATEWAY_TAG=latest-dev JMS_TAG=latest-dev docker-compose pull
FSGATEWAY_TAG=latest-dev JMS_TAG=latest-dev LOCALHOST_ADDR=localhost docker-compose up -d keycloak
echo "Waiting a few sec ..."
sleep 5
FSGATEWAY_TAG=latest-dev JMS_TAG=latest-dev LOCALHOST_ADDR=localhost docker-compose up -d
working-directory: ./docker-compose-artifact
- name: Test with tox
run: tox -e ${{ matrix.cfg.toxenv }}-noeval-coverage
env:
REP_TEST_URL: https://localhost:8443/rep
REP_TEST_USERNAME: repadmin
REP_TEST_PASSWORD: repadmin
- name: "Upload coverage results"
uses: actions/upload-artifact@v4
if: matrix.cfg.python-version == env.MAIN_PYTHON_VERSION
with:
name: coverage-html
path: .cov/html
retention-days: 7
- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: '**/test*.xml'
check_name: Test Report ${{ matrix.os }}:${{ matrix.cfg.python-version }}
detailed_summary: true
include_passed: true
- name: Stop services
if: always()
run: |
docker-compose down -v
working-directory: ./docker-compose-artifact/docker-compose
docs:
name: Documentation
runs-on: ubuntu-latest
needs: [doc-style]
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools tox
# Necessary for creating PDF
sudo apt-get -y install latexmk
sudo apt install texlive-latex-extra
- name: Generate the documentation with tox
run: tox -e doc
- name: Upload HTML Documentation
uses: actions/upload-artifact@v4
with:
name: documentation-html
path: doc/_build/html
retention-days: 7
- name: Upload PDF Documentation
uses: actions/upload-artifact@v4
with:
name: documentation-pdf
path: doc/_build/latex/*.pdf
retention-days: 7
smoke-tests:
name: Build and Smoke tests
runs-on: ${{ matrix.os }}
needs: [style]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
should-release:
- ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags') }}
exclude:
- should-release: false
os: macos-latest
steps:
- name: Build wheelhouse and perform smoke test
uses: ansys/actions/build-wheelhouse@v5
with:
library-name: ${{ env.PACKAGE_NAME }}
operating-system: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
package:
name: Package library
needs: [tests, docs, smoke-tests]
runs-on: ubuntu-latest
steps:
- name: Build library source and wheel artifacts
uses: ansys/actions/build-library@v5
with:
library-name: ${{ env.PACKAGE_NAME }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}
library-version:
name: Get library version
runs-on: ubuntu-latest
steps:
- name: "Install Git and clone project"
uses: actions/checkout@v4
- name: "Set up Python ${{ env.MAIN_PYTHON_VERSION }}"
uses: ansys/actions/_setup-python@main
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
use-cache: true
- name: "Install the library"
shell: bash
run: |
python -m pip install -e .
- name: "Verify library is properly installed and get its version number"
shell: bash
run: |
library_name=${{ env.PACKAGE_NAME }}
version=$(python -c "import importlib.metadata as importlib_metadata; print(importlib_metadata.version('$library_name'))")
if [ -z "$version" ]; then
echo "Problem getting the library version"
exit 1;
else
echo "The library version is: $version";
fi;
echo "library_version=$version" >> $GITHUB_ENV
pre-release:
name: Pre-release project
if: startsWith(github.ref, 'refs/heads/main')
needs: [package, library-version]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
with:
name: ansys-hps-client-artifacts
path: /tmp/artifacts
- name: List artifacts
run: ls -ltR /tmp/artifacts
- name: Release to latest-dev
uses: "marvinpinto/action-automatic-releases@latest"
if: startsWith(github.ref, 'refs/heads/main')
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
automatic_release_tag: "v${{ env.library_version }}"
prerelease: true
title: "v${{ env.library_version }}"
files: |
/tmp/artifacts/*.whl
upload_dev_docs:
name: "Deploy dev documentation"
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs: [package]
steps:
- name: Deploy the latest documentation
uses: ansys/actions/doc-deploy-dev@v5
with:
doc-artifact-name: 'documentation-html'
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
release:
name: Release project
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
needs: [package]
runs-on: ubuntu-latest
steps:
- name: Release to the private PyPI repository
uses: ansys/actions/release-pypi-private@v5
with:
library-name: ${{ env.PACKAGE_NAME }}
twine-username: "__token__"
twine-token: ${{ secrets.PYANSYS_PYPI_PRIVATE_PAT }}
- name: Release to GitHub
uses: ansys/actions/release-github@v5
with:
library-name: ${{ env.PACKAGE_NAME }}
doc-deploy-stable:
name: "Deploy stable documentation"
# Deploy release documentation when creating a new tag
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs: [release]
steps:
- uses: ansys/actions/doc-deploy-stable@v5
with:
doc-artifact-name: 'documentation-html'
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}