diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b90a942..20815984 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,115 +6,45 @@ on: - main pull_request: + workflow_dispatch: + + concurrency: group: ${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v3 - with: - python-version: "3.9" - - uses: pre-commit/action@v2.0.3 - - # Make sure commit messages follow the conventional commits convention: - # https://www.conventionalcommits.org - commitlint: - name: Lint Commit Messages - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: wagoid/commitlint-github-action@v5 - - test: - strategy: - fail-fast: false - matrix: - python-version: - - "3.7" - - "3.8" - - "3.9" - - "3.10" - - "3.11" - - "3.12" - os: - - ubuntu-latest - extension: - - "skip_cython" - - "use_cython" - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v3 - - name: Update apt - run: sudo apt update - - name: Install libs - run: sudo apt-get install -y dbus dbus-x11 python3-gi libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev gir1.2-gtk-3.0 - - name: Install poetry - run: pipx install poetry - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - cache: "poetry" - - name: Install Dependencies - run: | - if [ "${{ matrix.extension }}" = "skip_cython" ]; then - SKIP_CYTHON=1 poetry install --only=main,dev - else - REQUIRE_CYTHON=1 poetry install --only=main,dev - fi - - name: Test with Pytest - run: export $(dbus-launch); poetry run pytest --cov-report=xml --timeout=5 - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - release: runs-on: ubuntu-latest environment: release - if: github.ref == 'refs/heads/main' - needs: - - test - - lint - - commitlint steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - # Run semantic release: - # - Update CHANGELOG.md - # - Update version in code - # - Create git tag - # - Create GitHub release - # - Publish to PyPI - - name: Python Semantic Release - uses: python-semantic-release/python-semantic-release@v7.34.6 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - pypi_token: ${{ secrets.PYPI_TOKEN }} - build_wheels: needs: [release] - name: Build wheels on ${{ matrix.os }} + name: Build wheels on ${{ matrix.os }} with arch ${{ matrix.arch }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-20.04] + arch: + - "x86_64" + - "aarch64" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - ref: "main" + + - name: Set up QEMU + if: matrix.arch == 'aarch64' + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 + with: + platforms: arm64 # Used to host cibuildwheel - name: Set up Python @@ -129,9 +59,9 @@ jobs: run: | echo "::set-output name=newest_release_tag::$(semantic-release print-version --current)" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: - ref: "v${{ steps.release_tag.outputs.newest_release_tag }}" + ref: "main" fetch-depth: 0 - name: Install cibuildwheel @@ -145,6 +75,7 @@ jobs: CIBW_BEFORE_ALL_LINUX: apt-get install -y gcc || yum install -y gcc || apk add gcc CIBW_BUILD_VERBOSITY: 3 REQUIRE_CYTHON: 1 + CIBW_ARCHS: ${{ matrix.arch }} - uses: actions/upload-artifact@v3 with: