From ba2c9e1d35894ce353289a1cb141f890fe63e00b Mon Sep 17 00:00:00 2001 From: Mohammad Zain Abbas Date: Mon, 27 Nov 2023 11:45:52 +0100 Subject: [PATCH] Updated CI pipeline --- .github/workflows/ci.yml | 81 ++++++++++++++++++++++++++++++++-------- 1 file changed, 66 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b5987fb..0c328e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,26 +8,17 @@ on: workflow_dispatch: jobs: - build: - runs-on: ${{ matrix.os }} + build-ubuntu: + runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] - os: [ubuntu-latest, windows-latest, macos-latest] architecture: ['x64'] - include: - - os: macos-latest - architecture: arm64 - python-version: '3.12' - - os: macos-latest - architecture: arm64 - python-version: '3.123.13.0-alpha.2' - steps: - - name: Checkout current repo + - name: Checkout current repo uses: actions/checkout@v2 - - name: Set up Python (${{ matrix.python-version }}) - ${{ matrix.architecture }} on ${{ matrix.os }} + - name: Set up Python (${{ matrix.python-version }}) - ${{ matrix.architecture }} on Ubuntu uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} @@ -36,12 +27,72 @@ jobs: uses: actions/cache@v2 with: path: ~/.cache/pip - key: ${{ runner.os }}-python-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }} + key: ubuntu-python-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }} restore-keys: | - ${{ runner.os }}-python-${{ matrix.python-version }}- + ubuntu-python-${{ matrix.python-version }}- - name: Install dependencies run: | pip install -r requirements.txt - name: Run Streamlit App run: | streamlit run my_app.py --server.headless true & sleep 20s; kill $! + + build-windows: + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] + architecture: ['x64'] + steps: + - name: Checkout current repo + uses: actions/checkout@v2 + - name: Set up Python (${{ matrix.python-version }}) - ${{ matrix.architecture }} on Windows + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + architecture: ${{ matrix.architecture }} + - name: Cache Python dependencies + uses: actions/cache@v2 + with: + path: ~\\AppData\\Local\\pip\\Cache + key: windows-python-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + windows-python-${{ matrix.python-version }}- + - name: Install dependencies + run: | + pip install -r requirements.txt + - name: Run Streamlit App + run: | + start /b streamlit run my_app.py --server.headless true + timeout /t 20 + taskkill /im streamlit.exe /f + + build-macos: + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13.0-alpha.2'] + architecture: ['x64', 'arm64'] + steps: + - name: Checkout current repo + uses: actions/checkout@v2 + - name: Set up Python (${{ matrix.python-version }}) - ${{ matrix.architecture }} on MacOS + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + architecture: ${{ matrix.architecture }} + - name: Cache Python dependencies + uses: actions/cache@v2 + with: + path: ~/Library/Caches/pip + key: macos-python-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + macos-python-${{ matrix.python-version }}- + - name: Install dependencies + run: | + pip install -r requirements.txt + - name: Run Streamlit App + run: | + streamlit run my_app.py --server.headless true & sleep 20s; kill $! \ No newline at end of file