Merge pull request #2914 from Mikhail5555/CiPipelineImprovements
Add Caching and Test export to CI workflow
This commit is contained in:
commit
b6cbb28a87
85
.github/workflows/ci.yml
vendored
85
.github/workflows/ci.yml
vendored
@ -10,31 +10,80 @@ jobs:
|
|||||||
max-parallel: 4
|
max-parallel: 4
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ['3.10']
|
python-version: ['3.10']
|
||||||
|
node-version: ['18']
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
- name: Set up Python 3.10
|
- 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
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.10'
|
python-version: ${{ matrix.python-version }}
|
||||||
# Build Vue frontend
|
cache: 'pip'
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
- name: Install Python Dependencies
|
||||||
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
|
|
||||||
run: |
|
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
|
python -m pip install --upgrade pip
|
||||||
pip install -r requirements.txt
|
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 --noinput
|
||||||
python3 manage.py collectstatic_js_reverse
|
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
|
- name: Django Testing project
|
||||||
run: |
|
run: pytest --junitxml=junit/test-results-${{ matrix.python-version }}.xml
|
||||||
pytest
|
|
||||||
|
- 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
|
||||||
|
Loading…
Reference in New Issue
Block a user