3 on: [push, pull_request]
10 - name: Cancel Previous Runs
11 uses: styfle/cancel-workflow-action@0.12.0
13 uses: actions/checkout@v4
15 run: rustup toolchain install stable --profile minimal --no-self-update
16 - name: Install Garden
17 run: cargo install garden-tools
18 - uses: Swatinem/rust-cache@v2
19 - name: Install build dependencies
23 sudo apt-get install python3-sphinx python3-qtpy python3-pyqt5
24 - name: Install Git Cola
25 run: garden -D prefix=dist install
29 runs-on: ubuntu-latest
31 - name: Cancel Previous Runs
32 uses: styfle/cancel-workflow-action@0.12.0
34 uses: actions/checkout@v4
36 run: rustup toolchain install stable --profile minimal --no-self-update
37 - name: Install Garden
38 run: cargo install garden-tools
39 - uses: Swatinem/rust-cache@v2
40 - name: Install Dependencies
44 # Runtime dependencies (required)
45 sudo apt-get install \
48 # Runtime dependencies (optional)
49 sudo apt-get install \
51 # Development dependencies
52 sudo apt-get install \
56 python3-setuptools-scm \
59 - name: Configure tests
61 git config --global user.name "Git Cola"
62 git config --global user.email git-cola@localhost
63 - name: Run tests and checks
65 - name: Code formatting
66 run: garden fmt -- --check
70 runs-on: windows-latest
72 - name: Cancel Previous Runs
73 uses: styfle/cancel-workflow-action@0.12.0
75 uses: actions/checkout@v4
77 uses: actions/setup-python@v4
82 uses: actions/cache@v3
84 path: ~/AppData/Local/pip/Cache
85 key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements/requirements*.txt') }}
86 - name: Install Dependencies
89 pip install --requirement requirements/requirements.txt
90 pip install --requirement requirements/requirements-opt.txt
91 pip install --requirement requirements/requirements-dev.txt
92 pip install --requirement requirements/requirements-maint.txt
93 # Based on: contrib/win32/run-pynsist.sh
94 - name: Build Installer
97 make htmldir="$PWD/share/doc/git-cola/html" install-doc
99 rm -r share/doc/git-cola/html
101 # Rename executable output
103 mv git-cola*.exe git-cola-latest-${{github.run_number}}.exe
104 - name: Upload Artifact
105 uses: actions/upload-artifact@v3
107 name: git-cola-latest-${{github.run_number}}-${{runner.os}}
108 path: build/nsis/git-cola*.exe
112 runs-on: macos-latest
114 - name: Cancel Previous Runs
115 uses: styfle/cancel-workflow-action@0.12.0
117 uses: actions/checkout@v4
119 run: rustup toolchain install stable --profile minimal --no-self-update
120 - name: Install Garden
121 run: cargo install garden-tools
122 - uses: Swatinem/rust-cache@v2
123 - name: Install Dependencies
126 brew install git-cola
128 source env3/bin/activate
129 python -m pip install wheel
131 garden requirements/dev
135 source env3/bin/activate
137 mv git-cola.app build/
139 run: zip -r git-cola.app.zip build/*
140 - name: Upload Artifact
141 uses: actions/upload-artifact@v3
143 name: git-cola-latest-${{github.run_number}}-${{runner.os}}
144 path: git-cola.app.zip