build(deps): bump actions/checkout from 3 to 4 (#265) #838
This file contains 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: CI | |
on: | |
pull_request: | |
workflow_dispatch: | |
push: | |
tags: | |
- "*" | |
branches: | |
- main | |
env: | |
MAIN_PYTHON_VERSION: '3.9' | |
PACKAGE_NAME: 'ansys-dyna-core' | |
PACKAGE_NAMESPACE: 'ansys.dyna.core' | |
DOCUMENTATION_CNAME: "dyna.docs.pyansys.com" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
code-style: | |
name: "Code style" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: ansys/actions/code-style@v4 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
doc-style: | |
name: "Documentation style" | |
runs-on: ubuntu-latest | |
steps: | |
- name: PyAnsys documentation style checks | |
uses: ansys/actions/doc-style@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
doc: | |
name: "Documentation build" | |
runs-on: ubuntu-latest | |
needs: [doc-style] | |
steps: | |
- name: "Checkout project" | |
uses: actions/checkout@v4 | |
- name: "Set up Python ${{ env.MAIN_PYTHON_VERSION }}" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
cache: 'pip' | |
cache-dependency-path: 'pyproject.toml' | |
- name: "Install system dependencies" | |
run: | | |
sudo apt-get update | |
sudo apt-get install xvfb pandoc texlive-latex-extra latexmk | |
- name: "Install python dependencies" | |
run: | | |
python -m pip install .[doc] | |
- name: "Login to GitHub container registry" | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: "Install and run DPF server" | |
run: | | |
docker pull ghcr.io/ansys/dpf-core:22.2dev | |
docker run -d --name dpfserver -p 50054:50052 ghcr.io/ansys/dpf-core:22.2dev && echo "DPF Server active on port 50054." | |
- name: LS-DYNA Keyword server activation | |
run: | | |
docker pull ghcr.io/ansys/ls-pre:latest | |
docker run -d --name kw_server -p 50051:50051 ghcr.io/ansys/ls-pre:latest && echo "Keyword server active on port 50051." | |
- name: "Build the html documentation" | |
run: | | |
xvfb-run make -C doc html | |
- name: "Build the pdf documentation" | |
run: | | |
make -C doc pdf | |
- name: "Upload html documentation" | |
uses: actions/upload-artifact@v3 | |
with: | |
name: documentation-html | |
path: doc/_build/html | |
retention-days: 7 | |
- name: "Upload pdf documentation" | |
uses: actions/upload-artifact@v3 | |
with: | |
name: documentation-pdf | |
path: doc/_build/latex/*.pdf | |
retention-days: 7 | |
- name: Extract the server logs | |
if: always() | |
run: | | |
docker logs kw_server > server_output.txt | |
- name: "Upload the server logs" | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: server_output.txt | |
path: server_output.txt | |
- name: DPF Logs (on screen) | |
if: always() | |
run: | | |
docker logs dpfserver | |
docker stop dpfserver | |
smoke-tests: | |
name: "Build wheelhouse for ${{ matrix.os }} and Python ${{ matrix.python-version }}" | |
runs-on: ${{ matrix.os }} | |
needs: [code-style] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest] | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: ansys/actions/build-wheelhouse@v4 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
library-namespace: ${{ env.PACKAGE_NAMESPACE }} | |
operating-system: ${{ matrix.os }} | |
python-version: ${{ matrix.python-version }} | |
tests: | |
name: "Testing" | |
runs-on: ubuntu-latest | |
needs: [smoke-tests] | |
steps: | |
- name: "Checkout repository" | |
uses: actions/checkout@v4 | |
- name: "Set up Python" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
cache: 'pip' | |
cache-dependency-path: 'pyproject.toml' | |
- name: "Login to GitHub container registry" | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: "Pull and start LS-DYNA keyword server" | |
run: | | |
docker pull ghcr.io/ansys/ls-pre:latest | |
docker run -d --name kw_server -p 50051:50051 ghcr.io/ansys/ls-pre:latest && echo "Keyword server active on port 50051." | |
- name: "Install package dependencies" | |
run: | | |
pip install -e .[tests] | |
- name: "Run tests" | |
run: | | |
pytest | |
- name: "Extract the server logs" | |
if: always() | |
run: | | |
docker logs kw_server > server_output.txt | |
- name: "Upload the server logs" | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: server_output.txt | |
path: server_output.txt | |
- name: "Upload coverage results" | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage-html | |
path: .cov/html | |
retention-days: 7 | |
build-library: | |
name: "Build library" | |
needs: [doc, tests] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: ansys/actions/build-library@v4 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
release: | |
name: Release project | |
if: github.event_name == 'push' && contains(github.ref, 'refs/tags') | |
needs: [build-library] | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Release to the public PyPI repository" | |
uses: ansys/actions/release-pypi-public@v4 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
twine-username: "__token__" | |
twine-token: ${{ secrets.PYPI_TOKEN }} | |
- name: "Release to GitHub" | |
uses: ansys/actions/release-github@v4 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
doc-deploy-dev: | |
name: "Deploy development documentation" | |
if: github.ref == 'refs/heads/main' | |
runs-on: ubuntu-latest | |
needs: [build-library] | |
steps: | |
- uses: ansys/actions/doc-deploy-dev@v4 | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
doc-deploy-stable: | |
name: "Deploy stable documentation" | |
if: github.event_name == 'push' && contains(github.ref, 'refs/tags') | |
runs-on: ubuntu-latest | |
needs: [release] | |
steps: | |
- uses: ansys/actions/doc-deploy-stable@v4 | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} |