Merge pull request #2914 from Mikhail5555/CiPipelineImprovements

Add Caching and Test export to CI workflow
This commit is contained in:
vabene1111 2024-02-05 15:50:25 +01:00 committed by GitHub
commit b6cbb28a87
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -10,31 +10,80 @@ jobs:
max-parallel: 4
matrix:
python-version: ['3.10']
node-version: ['18']
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
- uses: actions/checkout@v3
- uses: awalsh128/cache-apt-pkgs-action@v1.3.1
with:
packages: libsasl2-dev python3-dev libldap2-dev libssl-dev
version: 1.0
# Setup python & dependencies
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: '3.10'
# Build Vue frontend
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install Vue dependencies
working-directory: ./vue
run: yarn install
- name: Build Vue dependencies
working-directory: ./vue
run: yarn build
- name: Install Django dependencies
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install Python Dependencies
run: |
sudo apt-get -y update
sudo apt-get install -y libsasl2-dev python3-dev libldap2-dev libssl-dev
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Cache StaticFiles
uses: actions/cache@v3
id: django_cache
with:
path: |
./cookbook/static
./vue/webpack-stats.json
./staticfiles
key: |
${{ runner.os }}-${{ matrix.python-version }}-${{ matrix.node-version }}-collectstatic-${{ hashFiles('**/*.css', '**/*.js', 'vue/src/*') }}
# Build Vue frontend & Dependencies
- name: Set up Node ${{ matrix.node-version }}
if: steps.django_cache.outputs.cache-hit != 'true'
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: ./vue/yarn.lock
- name: Install Vue dependencies
if: steps.django_cache.outputs.cache-hit != 'true'
working-directory: ./vue
run: yarn install
- name: Build Vue dependencies
if: steps.django_cache.outputs.cache-hit != 'true'
working-directory: ./vue
run: yarn build
- name: Compile Django StatisFiles
if: steps.django_cache.outputs.cache-hit != 'true'
run: |
python3 manage.py collectstatic --noinput
python3 manage.py collectstatic_js_reverse
- uses: actions/cache/save@v3
if: steps.django_cache.outputs.cache-hit != 'true'
with:
path: |
./cookbook/static
./vue/webpack-stats.json
./staticfiles
key: |
${{ runner.os }}-${{ matrix.python-version }}-${{ matrix.node-version }}-collectstatic-${{ hashFiles('**/*.css', '**/*.js', 'vue/src/*') }}
- name: Django Testing project
run: |
pytest
run: pytest --junitxml=junit/test-results-${{ matrix.python-version }}.xml
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
comment_mode: off
files: |
junit/test-results-${{ matrix.python-version }}.xml