variables: PYTHON3_32: "C:\\python38-32\\python.exe" PYTHON3_64: "C:\\python38-64\\python.exe" NSIS: "C:\\nsis\\makensis.exe" ### Stage list # Build: This will be the main stage generating stuff in the dist folder. Jobs present in this stage will run py2exe or pyinstaller files accordingly. # pack: Jobs in this stage will take the dist folder and zip it or generate an exe file. stages: - test - build - pack .configure_environment: &configure_environment tags: - windows10 before_script: - '&$env:PYTHON3_32 -V' - '&$env:PYTHON3_32 -m venv env' - 'env\scripts\activate' - 'python -m pip install --upgrade pip' - 'python -m pip install --upgrade -r requirements.txt' ### Updates all translation templates for weblate update_translation_templates: <<: *configure_environment stage: build tags: - windows10 script: - 'python -m pip install --upgrade babel' # - copy changelog.md doc\changelog.md # - cd doc # - '&$env:PYTHON3_32 documentation_importer.py' - cd src - 'python setup.py extract_messages -o ..\scripts\musicdl.pot --msgid-bugs-address "manuel@manuelcortez.net" --copyright-holder "Manuel Cortez" --input-dirs .' # - cd ..\doc # - '&$env:PYTHON3_32 translate.py' - cd .. - 'git config user.name "Windows runner"' - 'git config user.email "manuel@manuelcortez.net"' - 'git add scripts' - 'git remote set-url --push origin git@code.manuelcortez.net:$env:CI_PROJECT_PATH' - 'git commit -m "Updated locales [skip ci]"' - 'git push origin HEAD:$env:CI_COMMIT_REF_NAME' only: - master test: <<: *configure_environment stage: test tags: - windows10 script: - cd src - 'python -m pip install --upgrade coverage' - 'python -m coverage run run_tests.py' - 'python -m coverage report --omit="test*"' coverage: '/TOTAL.+ ([0-9]{1,3}%)/' only: - master - schedules public: <<: *configure_environment stage: build script: - cd src - 'python write_version_data.py' - 'python setup.py build' - '&$env:NSIS installer.nsi' - cd .. - move src\music_dl* . - cd scripts - 'python prepare_zipversion.py' - cd .. - move src\music_dl.zip music_dl.zip - 'python scripts/generate_update_file.py' - 'python scripts/upload.py' only: - master