Skip to content

build(deps): bump actions/download-artifact from 3 to 4 #130

build(deps): bump actions/download-artifact from 3 to 4

build(deps): bump actions/download-artifact from 3 to 4 #130

Workflow file for this run

name: CI
env:
PYTHON_VERSION: '3.11.5'
on:
push:
branches:
- main
- '*.x'
- ci
pull_request:
branches:
- main
- '*.x'
- ci
jobs:
setup:
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- name: Get upstream branch name
run: |
echo "INDICO_BRANCH=master" >> "$GITHUB_ENV"
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install system dependencies
run: sudo apt-get install postgresql-client libpq-dev
- name: Create virtualenv
run: |
python3.11 -m venv .venv
source .venv/bin/activate
pip install -U pip setuptools wheel
- name: Activate virtualenv for later steps
run: |
echo "VIRTUAL_ENV=$(pwd)/.venv" >> $GITHUB_ENV
echo "$(pwd)/.venv/bin" >> $GITHUB_PATH
- name: Get pip cache dir
id: pip-cache
run: echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache pip
id: cache-pip
uses: actions/cache@v3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: pip|${{ runner.os }}|3.11|${{ hashFiles('**/setup.cfg') }}
- uses: actions/cache@v3
id: cache-npm
with:
path: node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('package*.json') }}
- name: Setup Node
uses: actions/setup-node@v4
if: steps.cache-npm.outputs.cache-hit != 'true'
with:
node-version: '18.x'
- name: Install Indico
run: |
pip install Babel
pip install git+https://github.com/indico/indico.git@${INDICO_BRANCH}#egg=indico[dev]
- name: Install node dependencies
if: steps.cache-npm.outputs.cache-hit != 'true'
run: npm ci
- name: Archive environment
run: tar cf /tmp/env.tar .venv node_modules
- name: Upload environment
uses: actions/upload-artifact@v3
with:
name: environment
retention-days: 1
path: /tmp/env.tar
lint:
needs: setup
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- name: Get upstream branch name
run: |
echo "INDICO_BRANCH=master" >> "$GITHUB_ENV"
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Download environment
uses: actions/download-artifact@v4
with:
name: environment
path: /tmp
- name: Restore environment
run: tar xf /tmp/env.tar
- name: Activate virtualenv for later steps
run: |
echo "VIRTUAL_ENV=$(pwd)/.venv" >> $GITHUB_ENV
echo "$(pwd)/.venv/bin" >> $GITHUB_PATH
- name: Check import sorting
run: isort --diff --check-only .
- name: Check headers
if: success() || failure()
run: |
pipx install unbeheader
touch node_modules/.no-header
echo '::add-matcher::.github/matchers/headers-problem-matcher.json'
unbehead --check
echo '::remove-matcher owner=headers::'
- name: Run flake8
if: success() || failure()
run: |
echo '::add-matcher::.github/matchers/flake8-problem-matcher.json'
flake8 --format '%(path)s:%(row)d:%(col)d: %(code)s %(text)s'
echo '::remove-matcher owner=flake8::'
test-plugin:
needs: setup
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
services:
postgres:
image: postgres:11
env:
POSTGRES_HOST_AUTH_METHOD: trust
ports:
- 5432
options: --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 10
#strategy:
# matrix:
# include:
# - plugin: indico_sso_group_mapping
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Download environment
uses: actions/download-artifact@v4
with:
name: environment
path: /tmp
- name: Restore environment
run: tar xf /tmp/env.tar
- name: Activate virtualenv for later steps
run: |
echo "VIRTUAL_ENV=$(pwd)/.venv" >> $GITHUB_ENV
echo "$(pwd)/.venv/bin" >> $GITHUB_PATH
#- name: Install extra dependencies
# if: matrix.plugin == 'citadel'
# run: |
# pip install -e "${GITHUB_WORKSPACE}/livesync/"
- name: Install plugin
run: |
#cd "${GITHUB_WORKSPACE}/${{ matrix.plugin }}"
cd "${GITHUB_WORKSPACE}"
pip install -e .
- name: Install redis
run: sudo apt-get install redis-server
- name: Setup database
run: |
export PGHOST=localhost
export PGPORT=${{ job.services.postgres.ports[5432] }}
export PGUSER=postgres
createuser indicotest
createdb -O indicotest indicotest
psql indicotest -c 'CREATE EXTENSION unaccent;'
psql indicotest -c 'CREATE EXTENSION pg_trgm;'
- name: Run tests
run: |
export INDICO_TEST_DATABASE_URI="postgresql://indicotest@localhost:${{ job.services.postgres.ports[5432] }}/indicotest"
#cd "${GITHUB_WORKSPACE}/${{ matrix.plugin }}"
cd "${GITHUB_WORKSPACE}"
pytest --color=yes