Skip to content

Feature/ci split artifact (#49) #72

Feature/ci split artifact (#49)

Feature/ci split artifact (#49) #72

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: RCM_CI_win
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "dev" ]
pull_request:
branches: [ "dev" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
RCM_CHECKOUT: "RCM"
PYTHON_VERSION: "3.10.11"
TURBOVNC_DOWNLOAD: "https://github.com/TurboVNC/turbovnc/releases/download"
TURBOVNC_EXTERNAL: "rcm/client/external/turbovnc"
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
python:
# The type of runner that the job will run on
runs-on: windows-latest
strategy:
matrix:
turbovnc-version:
- '3.1'
- '2.2.7'
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# CHECKOUT
- name: Checkout RCM
uses: actions/[email protected]
with:
path: ${{ env.RCM_CHECKOUT }}
# CACHE
- name: (GHO) Cache python
uses: actions/[email protected]
id: cache-python
with:
path: python
key: python-${{ env.PYTHON_VERSION }}-${{ runner.os }}
- name: (GHO) Cache venv
uses: actions/[email protected]
id: cache-venv
with:
path: venv
key: venv-${{ hashFiles( format('{0}/rcm/client/requirements.txt', env.RCM_CHECKOUT ) ) }}-${{ runner.os }}
- name: (GHO) Cache turbovnc
uses: actions/[email protected]
id: cache-turbovnc
with:
path: turbovnc
key: turbovnc-${{ matrix.turbovnc-version }}-${{ runner.os }}
# PYTHON
- name: Install python locally
if: ${{ steps.cache-python.outputs.cache-hit != 'true' }}
run: . "${{ env.RCM_CHECKOUT }}/scripts/ci/install_local_python.ps1"
# VENV
- name: Install venv
if: ${{ steps.cache-venv.outputs.cache-hit != 'true' }}
run: . "${{ env.RCM_CHECKOUT }}/scripts/ci/install_local_venv.ps1"
# TURBOVNC
- name: Extract turbovnc
if: ${{ steps.cache-turbovnc.outputs.cache-hit != 'true' }}
env:
TURBOVNC_VERSION: ${{ matrix.turbovnc-version }}
run: . "${{ env.RCM_CHECKOUT }}/scripts/ci/extract_turbovnc.ps1"
- name: Move turbovnc to external
run: |
mkdir "${{ env.RCM_CHECKOUT }}\${{ env.TURBOVNC_EXTERNAL }}"
mv turbovnc "${{ env.RCM_CHECKOUT }}/${{ env.TURBOVNC_EXTERNAL }}/bin"
# PYINSTALLER
- name: Build pyinstaller
run: |
venv\Scripts\Activate.ps1
pyinstaller "${{ env.RCM_CHECKOUT }}\rcm\client\rcm_client_qt.spec"
# ARTIFACT
- name: (GHO) Move preartifacts
run: |
mv dist/*/*/RCM.exe .
Expand-Archive -Path dist/*/*/RCM.zip -DestinationPath ./RCM-dir
- name: (GHO) Upload exe
uses: actions/[email protected]
with:
name: RCM-client-${{ runner.os }}-turbovnc-${{ matrix.turbovnc-version }}
path: |
RCM.exe
- name: (GHO) Upload dir
uses: actions/[email protected]
with:
name: RCM-client-${{ runner.os }}-turbovnc-${{ matrix.turbovnc-version }}-dir
path: |
RCM-dir