mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-11-04 02:53:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: "Setup project"
 | 
						|
description: "Setup Python and Poetry"
 | 
						|
inputs:
 | 
						|
  full:
 | 
						|
    description: > 
 | 
						|
      If true, do a full setup, else install
 | 
						|
      only python, uv and non-xapian python deps
 | 
						|
    required: false
 | 
						|
    default: "false"
 | 
						|
runs:
 | 
						|
  using: composite
 | 
						|
  steps:
 | 
						|
    - name: Install apt packages
 | 
						|
      if: ${{ inputs.full == 'true' }}
 | 
						|
      uses: awalsh128/cache-apt-pkgs-action@v1.4.3
 | 
						|
      with:
 | 
						|
        packages: gettext
 | 
						|
        version: 1.0  # increment to reset cache
 | 
						|
 | 
						|
    - name: Install Redis
 | 
						|
      if: ${{ inputs.full == 'true' }}
 | 
						|
      uses: shogo82148/actions-setup-redis@v1
 | 
						|
      with:
 | 
						|
        redis-version: "7.x"
 | 
						|
 | 
						|
    - name: Install uv
 | 
						|
      uses: astral-sh/setup-uv@v5
 | 
						|
      with:
 | 
						|
        version: "0.5.14"
 | 
						|
        enable-cache: true
 | 
						|
        cache-dependency-glob: "uv.lock"
 | 
						|
 | 
						|
    - name: "Set up Python"
 | 
						|
      uses: actions/setup-python@v5
 | 
						|
      with:
 | 
						|
        python-version-file: ".python-version"
 | 
						|
 | 
						|
    - name: Restore cached virtualenv
 | 
						|
      uses: actions/cache/restore@v4
 | 
						|
      with:
 | 
						|
        key: venv-${{ runner.os }}-${{ hashFiles('.python-version') }}-${{ hashFiles('pyproject.toml') }}-${{ env.CACHE_SUFFIX }}
 | 
						|
        path: .venv
 | 
						|
 | 
						|
    - name: Install dependencies
 | 
						|
      run: uv sync
 | 
						|
      shell: bash
 | 
						|
 | 
						|
    - name: Install Xapian
 | 
						|
      if: ${{ inputs.full == 'true' }}
 | 
						|
      run: uv run ./manage.py install_xapian
 | 
						|
      shell: bash
 | 
						|
 | 
						|
    # compiling xapian accounts for almost the entirety of the virtualenv setup,
 | 
						|
    # so we save the virtual environment only on workflows where it has been installed
 | 
						|
    - name: Save cached virtualenv
 | 
						|
      if: ${{ inputs.full == 'true' }}
 | 
						|
      uses: actions/cache/save@v4
 | 
						|
      with:
 | 
						|
        key: venv-${{ runner.os }}-${{ hashFiles('.python-version') }}-${{ hashFiles('pyproject.toml') }}-${{ env.CACHE_SUFFIX }}
 | 
						|
        path: .venv
 | 
						|
 | 
						|
    - name: Compile gettext messages
 | 
						|
      if: ${{ inputs.full == 'true' }}
 | 
						|
      run: uv run ./manage.py compilemessages
 | 
						|
      shell: bash
 |