3 on: [push, pull_request]
10 - name: Cancel Previous Runs
11 uses: styfle/cancel-workflow-action@0.11.0
13 uses: actions/checkout@v3
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.11.0
34 uses: actions/checkout@v3
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.11.0
75 uses: actions/checkout@v3
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 Sphinx==5.3.0
90 pip install --requirement requirements/requirements.txt
91 pip install --requirement requirements/requirements-opt.txt
92 pip install --requirement requirements/requirements-dev.txt
93 pip install --requirement requirements/requirements-maint.txt
94 # Based on: contrib/win32/run-pynsist.sh
95 - name: Build Installer
98 make htmldir="$PWD/share/doc/git-cola/html" install-doc
100 rm -r share/doc/git-cola/html
102 # Rename executable output
104 mv git-cola*.exe git-cola-latest-${{github.run_number}}.exe
105 - name: Upload Artifact
106 uses: actions/upload-artifact@v3
108 name: git-cola-latest-${{github.run_number}}-${{runner.os}}
109 path: build/nsis/git-cola*.exe
113 runs-on: macos-latest
115 - name: Cancel Previous Runs
116 uses: styfle/cancel-workflow-action@0.11.0
118 uses: actions/checkout@v3
120 run: rustup toolchain install stable --profile minimal --no-self-update
121 - name: Install Garden
122 run: cargo install garden-tools
123 - uses: Swatinem/rust-cache@v2
124 - name: Install Dependencies
127 brew install git-cola
129 source env3/bin/activate
130 python -m pip install wheel
131 python -m pip install Sphinx==5.3.0
133 garden requirements/dev
137 source env3/bin/activate
139 mv git-cola.app build/
141 run: zip -r git-cola.app.zip build/*
142 - name: Upload Artifact
143 uses: actions/upload-artifact@v3
145 name: git-cola-latest-${{github.run_number}}-${{runner.os}}
146 path: git-cola.app.zip