From 4ef13f9fd606713c74a58e687a0b1fe21fcb000f Mon Sep 17 00:00:00 2001 From: Heinz-Alexander Fuetterer Date: Mon, 29 Jul 2024 15:46:59 +0200 Subject: [PATCH] apt-fast --- .github/workflows/ci.yml | 418 ++++++++++++++++++++------------------- 1 file changed, 210 insertions(+), 208 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 921c235d4c..3e018f9451 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,9 +34,9 @@ env: jobs: - lint: - # Ref: https://github.com/rdmorganiser/.github/blob/main/.github/workflows/_lint.yml - uses: rdmorganiser/.github/.github/workflows/_lint.yml@main + # lint: + # # Ref: https://github.com/rdmorganiser/.github/blob/main/.github/workflows/_lint.yml + # uses: rdmorganiser/.github/.github/workflows/_lint.yml@main test: runs-on: ubuntu-24.04 @@ -45,7 +45,7 @@ jobs: python-version: ['3.8', '3.12'] db-backend: [mysql, postgres] name: "Test (Python: ${{ matrix.python-version }}, DB: ${{ matrix.db-backend }})" - needs: lint + # needs: lint steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} @@ -55,212 +55,214 @@ jobs: cache: pip - name: Install Dependencies run: | - sudo apt update - sudo apt install --yes pandoc texlive-xetex librsvg2-bin - python -m pip install --upgrade pip - pandoc --version - - name: Install rdmo[mysql] and start mysql - run: | - python -m pip install --editable .[ci,mysql] - sudo systemctl start mysql.service - if: matrix.db-backend == 'mysql' - - name: Install rdmo[postgres] and start postgresql - run: | - python -m pip install --editable .[ci,postgres] - sudo systemctl start postgresql.service - pg_isready - sudo -u postgres psql --command="CREATE USER postgres_user PASSWORD 'postgres_password' CREATEDB" - if: matrix.db-backend == 'postgres' - - name: Prepare Env - run: | - cp -r testing/media testing/media_root - mkdir testing/log - - name: Run package status tests first - run: | - pytest rdmo/core/tests/test_package_status.py::test_package_json_and_pre_commit_versions_match \ - --nomigrations --verbose - if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' - - name: Run Tests - run: | - pytest -p randomly -p no:cacheprovider --cov --reuse-db --numprocesses=auto --dist=loadscope - env: - GITHUB_DB_BACKEND: ${{ matrix.db-backend }} - - name: Upload coverage data to coveralls.io - uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0 - with: - flag-name: '${{ matrix.db-backend }}: ${{ matrix.python-version }}' - parallel: true - # end-to-end tests - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: npm - if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' - - name: Install e2e tests dependencies - run: | - npm install - npm run build:prod - playwright install chromium - if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' - - run: mkdir screenshots - - name: Run end-to-end tests - run: pytest -p randomly -p no:cacheprovider --reuse-db --numprocesses=auto --dist=loadscope -m e2e --nomigrations - if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' - env: - DJANGO_DEBUG: True - GITHUB_DB_BACKEND: ${{ matrix.db-backend }} - - uses: actions/upload-artifact@v4 - with: - name: screenshots - path: screenshots/*.png - if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' + apt-fast - coveralls: - name: Indicate completion to coveralls - needs: test - if: ${{ always() }} - runs-on: ubuntu-24.04 - steps: - - name: Run Coveralls finish - uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0 - with: - parallel-finished: true + # sudo apt update + # sudo apt install --yes pandoc texlive-xetex librsvg2-bin + # python -m pip install --upgrade pip + # pandoc --version + # - name: Install rdmo[mysql] and start mysql + # run: | + # python -m pip install --editable .[ci,mysql] + # sudo systemctl start mysql.service + # if: matrix.db-backend == 'mysql' + # - name: Install rdmo[postgres] and start postgresql + # run: | + # python -m pip install --editable .[ci,postgres] + # sudo systemctl start postgresql.service + # pg_isready + # sudo -u postgres psql --command="CREATE USER postgres_user PASSWORD 'postgres_password' CREATEDB" + # if: matrix.db-backend == 'postgres' + # - name: Prepare Env + # run: | + # cp -r testing/media testing/media_root + # mkdir testing/log + # - name: Run package status tests first + # run: | + # pytest rdmo/core/tests/test_package_status.py::test_package_json_and_pre_commit_versions_match \ + # --nomigrations --verbose + # if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' + # - name: Run Tests + # run: | + # pytest -p randomly -p no:cacheprovider --cov --reuse-db --numprocesses=auto --dist=loadscope + # env: + # GITHUB_DB_BACKEND: ${{ matrix.db-backend }} + # - name: Upload coverage data to coveralls.io + # uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0 + # with: + # flag-name: '${{ matrix.db-backend }}: ${{ matrix.python-version }}' + # parallel: true + # # end-to-end tests + # - uses: actions/setup-node@v4 + # with: + # node-version: 18 + # cache: npm + # if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' + # - name: Install e2e tests dependencies + # run: | + # npm install + # npm run build:prod + # playwright install chromium + # if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' + # - run: mkdir screenshots + # - name: Run end-to-end tests + # run: pytest -p randomly -p no:cacheprovider --reuse-db --numprocesses=auto --dist=loadscope -m e2e --nomigrations + # if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' + # env: + # DJANGO_DEBUG: True + # GITHUB_DB_BACKEND: ${{ matrix.db-backend }} + # - uses: actions/upload-artifact@v4 + # with: + # name: screenshots + # path: screenshots/*.png + # if: matrix.python-version == '3.12' && matrix.db-backend == 'postgres' - build-wheel: - name: Build python wheel - needs: test - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - # update the version - - name: Get short commit SHA - run: | - if [ "${{ github.event_name }}" = "pull_request" ]; then - SHA="${{ github.event.pull_request.head.sha }}" - else - SHA="${{ github.sha }}" - fi - echo "SHA=$(git rev-parse --short $SHA)" >> $GITHUB_ENV - - name: Get current version (MAJOR.MINOR.PATCH) - id: current-version - run: echo "current_version=$(grep -Po '(?<=__version__ = ")[\d\w.]+(?=")' rdmo/__init__.py)" >> $GITHUB_OUTPUT - - name: Generate new version (current version + SHA) - id: new-version - run: echo "new_version=${{ steps.current-version.outputs.current_version }}+$SHA" >> $GITHUB_OUTPUT - - name: Update version in rdmo/__init__.py - run: | - sed -i "s/__version__ = .*/__version__ = \"${{ steps.new-version.outputs.new_version }}\"/" rdmo/__init__.py - # build the webpack bundle - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: npm - - run: npm install && npm run build:prod - # build the wheel - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - cache: pip - - run: | - python -m pip install --upgrade pip build[uv] twine - pip --version - - name: Build the wheel - run: python -m build --installer=uv - - name: Check the metadata of wheel and sdist - run: python -m twine check --strict dist/* - - name: Install package from built wheel - run: python -m pip install --no-compile dist/rdmo*.whl # do not create __pycache__/*.pyc files - - name: Write info to step summary - run: | - { - echo -e "# ✓ Wheel successfully built (v${{ steps.new-version.outputs.new_version }})\n\n" - echo '
Information about installed wheel' - echo -e "\n\`\`\`console" - echo "$ python -m pip show --files --verbose rdmo" - python -m pip show --files --verbose rdmo - echo -e "\`\`\`\n
" - } >> $GITHUB_STEP_SUMMARY - - name: Upload wheel as artifact - uses: actions/upload-artifact@v4 - with: - name: wheel - path: dist/rdmo*.whl - if-no-files-found: error - retention-days: 30 + # coveralls: + # name: Indicate completion to coveralls + # needs: test + # if: ${{ always() }} + # runs-on: ubuntu-24.04 + # steps: + # - name: Run Coveralls finish + # uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0 + # with: + # parallel-finished: true - dev-setup: - # Ref: structlog (MIT licensed) - name: "Test dev setup on ${{ matrix.os }}" - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: "3.12" - cache: pip - - run: python -Im pip install --editable .[dev] - - run: python -Ic 'import rdmo; print(rdmo.__version__)' + # build-wheel: + # name: Build python wheel + # needs: test + # runs-on: ubuntu-24.04 + # steps: + # - uses: actions/checkout@v4 + # # update the version + # - name: Get short commit SHA + # run: | + # if [ "${{ github.event_name }}" = "pull_request" ]; then + # SHA="${{ github.event.pull_request.head.sha }}" + # else + # SHA="${{ github.sha }}" + # fi + # echo "SHA=$(git rev-parse --short $SHA)" >> $GITHUB_ENV + # - name: Get current version (MAJOR.MINOR.PATCH) + # id: current-version + # run: echo "current_version=$(grep -Po '(?<=__version__ = ")[\d\w.]+(?=")' rdmo/__init__.py)" >> $GITHUB_OUTPUT + # - name: Generate new version (current version + SHA) + # id: new-version + # run: echo "new_version=${{ steps.current-version.outputs.current_version }}+$SHA" >> $GITHUB_OUTPUT + # - name: Update version in rdmo/__init__.py + # run: | + # sed -i "s/__version__ = .*/__version__ = \"${{ steps.new-version.outputs.new_version }}\"/" rdmo/__init__.py + # # build the webpack bundle + # - uses: actions/setup-node@v4 + # with: + # node-version: 18 + # cache: npm + # - run: npm install && npm run build:prod + # # build the wheel + # - uses: actions/setup-python@v5 + # with: + # python-version: '3.12' + # cache: pip + # - run: | + # python -m pip install --upgrade pip build[uv] twine + # pip --version + # - name: Build the wheel + # run: python -m build --installer=uv + # - name: Check the metadata of wheel and sdist + # run: python -m twine check --strict dist/* + # - name: Install package from built wheel + # run: python -m pip install --no-compile dist/rdmo*.whl # do not create __pycache__/*.pyc files + # - name: Write info to step summary + # run: | + # { + # echo -e "# ✓ Wheel successfully built (v${{ steps.new-version.outputs.new_version }})\n\n" + # echo '
Information about installed wheel' + # echo -e "\n\`\`\`console" + # echo "$ python -m pip show --files --verbose rdmo" + # python -m pip show --files --verbose rdmo + # echo -e "\`\`\`\n
" + # } >> $GITHUB_STEP_SUMMARY + # - name: Upload wheel as artifact + # uses: actions/upload-artifact@v4 + # with: + # name: wheel + # path: dist/rdmo*.whl + # if-no-files-found: error + # retention-days: 30 - dependencies: - name: Test installation of all dependencies - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: "3.12" - cache: pip - - name: Install os requirements for python-ldap - run: | - sudo apt update - sudo apt install --yes libldap2-dev libsasl2-dev - - run: python -m pip install --upgrade pip - - run: python -m pip install .[allauth,ci,dev,gunicorn,ldap,mysql,postgres,pytest] - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: npm - - run: npm install --include=dev - - name: Write info to step summary - run: | - { - echo -e "# ✓ All dependency groups successfully installed in combination\n\n" - echo '
Installed Python packages (dependency tree)' - echo -e "\n\`\`\`console" - echo "$ python -m pipdeptree --local-only --exclude=pip,pipdeptree" - python -m pipdeptree --local-only --exclude=pip,pipdeptree - echo -e "\`\`\`\n
" - echo '
Outdated Python dependencies' - echo -e "\n\`\`\`console" - echo "$ python -m pip list --outdated" - python -m pip list --outdated - echo -e "\`\`\`\n
" - echo '
Installed JavaScript packages (dependency tree)' - echo -e "\n\`\`\`console" - echo "$ npm list --all" - npm list --all - echo -e "\`\`\`\n
" - echo '
Outdated JavaScript dependencies' - echo -e "\n\`\`\`console" - echo "$ npm outdated --long" - npm outdated --long || true - echo -e "\`\`\`\n
" - } >> $GITHUB_STEP_SUMMARY + # dev-setup: + # # Ref: structlog (MIT licensed) + # name: "Test dev setup on ${{ matrix.os }}" + # runs-on: ${{ matrix.os }} + # strategy: + # matrix: + # os: [ubuntu-latest, windows-latest, macos-latest] + # steps: + # - uses: actions/checkout@v4 + # - uses: actions/setup-python@v5 + # with: + # python-version: "3.12" + # cache: pip + # - run: python -Im pip install --editable .[dev] + # - run: python -Ic 'import rdmo; print(rdmo.__version__)' - required-checks-pass: - if: always() - needs: - - lint - - test - - coveralls - - build-wheel - - dev-setup - - dependencies - runs-on: ubuntu-24.04 - steps: - - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJSON(needs) }} + # dependencies: + # name: Test installation of all dependencies + # runs-on: ubuntu-24.04 + # steps: + # - uses: actions/checkout@v4 + # - uses: actions/setup-python@v5 + # with: + # python-version: "3.12" + # cache: pip + # - name: Install os requirements for python-ldap + # run: | + # sudo apt update + # sudo apt install --yes libldap2-dev libsasl2-dev + # - run: python -m pip install --upgrade pip + # - run: python -m pip install .[allauth,ci,dev,gunicorn,ldap,mysql,postgres,pytest] + # - uses: actions/setup-node@v4 + # with: + # node-version: 18 + # cache: npm + # - run: npm install --include=dev + # - name: Write info to step summary + # run: | + # { + # echo -e "# ✓ All dependency groups successfully installed in combination\n\n" + # echo '
Installed Python packages (dependency tree)' + # echo -e "\n\`\`\`console" + # echo "$ python -m pipdeptree --local-only --exclude=pip,pipdeptree" + # python -m pipdeptree --local-only --exclude=pip,pipdeptree + # echo -e "\`\`\`\n
" + # echo '
Outdated Python dependencies' + # echo -e "\n\`\`\`console" + # echo "$ python -m pip list --outdated" + # python -m pip list --outdated + # echo -e "\`\`\`\n
" + # echo '
Installed JavaScript packages (dependency tree)' + # echo -e "\n\`\`\`console" + # echo "$ npm list --all" + # npm list --all + # echo -e "\`\`\`\n
" + # echo '
Outdated JavaScript dependencies' + # echo -e "\n\`\`\`console" + # echo "$ npm outdated --long" + # npm outdated --long || true + # echo -e "\`\`\`\n
" + # } >> $GITHUB_STEP_SUMMARY + + # required-checks-pass: + # if: always() + # needs: + # - lint + # - test + # - coveralls + # - build-wheel + # - dev-setup + # - dependencies + # runs-on: ubuntu-24.04 + # steps: + # - uses: re-actors/alls-green@release/v1 + # with: + # jobs: ${{ toJSON(needs) }}