File: ci.yml

package info (click to toggle)
python-b2sdk 2.10.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,228 kB
  • sloc: python: 32,094; sh: 13; makefile: 8
file content (139 lines) | stat: -rw-r--r-- 4,993 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
name: Continuous Integration

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

env:
  PYTHON_DEFAULT_VERSION: "3.12"

jobs:
  lint:
    timeout-minutes: 30
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: codespell-project/actions-codespell@2391250ab05295bddd51e36a8c6295edb6343b0e
        with:
          ignore_words_list: datas re-use
      - name: Set up Python ${{ env.PYTHON_DEFAULT_VERSION }}
        uses: actions/setup-python@v6
        with:
          python-version: ${{ env.PYTHON_DEFAULT_VERSION }}
          cache: "pip"
      - name: Install dependencies
        run: python -m pip install --upgrade nox pdm
      - name: Run linters
        run: nox -vs lint
      - name: Validate new changelog entries
        if: (contains(github.event.pull_request.labels.*.name, '-changelog') == false) && (github.event.pull_request.base.ref != '')
        run: if [ -z "$(git diff --diff-filter=A --name-only origin/${{ github.event.pull_request.base.ref }} changelog.d)" ];
          then echo no changelog item added; exit 1; fi
      - name: Changelog validation
        run: nox -vs towncrier_check
  build:
    timeout-minutes: 30
    needs: lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Set up Python ${{ env.PYTHON_DEFAULT_VERSION }}
        uses: actions/setup-python@v6
        with:
          python-version: ${{ env.PYTHON_DEFAULT_VERSION }}
          cache: "pip"
      - name: Install dependencies
        run: python -m pip install --upgrade nox pdm
      - name: Build the distribution
        run: nox -vs build
  cleanup_buckets:
    timeout-minutes: 30
    needs: lint
    env:
      B2_TEST_APPLICATION_KEY: ${{ secrets.B2_TEST_APPLICATION_KEY }}
      B2_TEST_APPLICATION_KEY_ID: ${{ secrets.B2_TEST_APPLICATION_KEY_ID }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        if: ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' }}  # TODO: skip this whole job instead
        with:
          fetch-depth: 0
      - name: Set up Python ${{ env.PYTHON_DEFAULT_VERSION }}
        if: ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' }}  # TODO: skip this whole job instead
        uses: actions/setup-python@v6
        with:
          python-version: ${{ env.PYTHON_DEFAULT_VERSION }}
          cache: "pip"
      - name: Install dependencies
        if: ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' }}  # TODO: skip this whole job instead
        run: python -m pip install --upgrade nox pdm
      - name: Find and remove old buckets
        if: ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' }}  # TODO: skip this whole job instead
        run: nox -vs cleanup_old_buckets
  test:
    timeout-minutes: 90
    needs: cleanup_buckets
    env:
      B2_TEST_APPLICATION_KEY: ${{ secrets.B2_TEST_APPLICATION_KEY }}
      B2_TEST_APPLICATION_KEY_ID: ${{ secrets.B2_TEST_APPLICATION_KEY_ID }}
      NOX_EXTRAS: ${{ matrix.extras }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: ["ubuntu-latest", "macos-latest", "windows-latest"]
        python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "pypy3.9", "pypy3.10"]
        extras: [ "" ]
        exclude:
          - os: "macos-latest"
            python-version: "pypy3.10"
          - os: "windows-latest"
            python-version: "pypy3.10"
        include:
          - python-version: "3.12"
            extras: "full"
            os: "ubuntu-latest"
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python-version }}
          cache: "pip"
      - name: Install dependencies
        run: python -m pip install --upgrade nox pdm
      - name: Run unit tests
        run: nox -vs unit -- -v
      - name: Run integration tests
        if: ${{ env.B2_TEST_APPLICATION_KEY != '' && env.B2_TEST_APPLICATION_KEY_ID != '' }}
        run: nox -vs integration -- --dont-cleanup-old-buckets -v
  doc:
    timeout-minutes: 30
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Set up Python ${{ env.PYTHON_DEFAULT_VERSION }}
        uses: actions/setup-python@v6
        with:
          python-version: ${{ env.PYTHON_DEFAULT_VERSION }}
          cache: "pip"
      - name: Install dependencies
        env:
          DEBIAN_FRONTEND: noninteractive
        run: |
          sudo apt-get update -y
          sudo apt-get install -y graphviz plantuml
          python -m pip install --upgrade nox pdm
      - name: Build the docs
        run: nox --non-interactive -vs doc