-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of github.com:piEsposito/diffusers into main
- Loading branch information
Showing
33 changed files
with
5,044 additions
and
209 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
name: Set up conda environment for testing | ||
|
||
description: Sets up miniconda in your ${RUNNER_TEMP} environment and gives you the ${CONDA_RUN} environment variable so you don't have to worry about polluting non-empeheral runners anymore | ||
|
||
inputs: | ||
python-version: | ||
description: If set to any value, dont use sudo to clean the workspace | ||
required: false | ||
type: string | ||
default: "3.9" | ||
miniconda-version: | ||
description: Miniconda version to install | ||
required: false | ||
type: string | ||
default: "4.12.0" | ||
environment-file: | ||
description: Environment file to install dependencies from | ||
required: false | ||
type: string | ||
default: "" | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
# Use the same trick from https://github.com/marketplace/actions/setup-miniconda | ||
# to refresh the cache daily. This is kind of optional though | ||
- name: Get date | ||
id: get-date | ||
shell: bash | ||
run: echo "::set-output name=today::$(/bin/date -u '+%Y%m%d')d" | ||
- name: Setup miniconda cache | ||
id: miniconda-cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: ${{ runner.temp }}/miniconda | ||
key: miniconda-${{ runner.os }}-${{ runner.arch }}-${{ inputs.python-version }}-${{ steps.get-date.outputs.today }} | ||
- name: Install miniconda (${{ inputs.miniconda-version }}) | ||
if: steps.miniconda-cache.outputs.cache-hit != 'true' | ||
env: | ||
MINICONDA_VERSION: ${{ inputs.miniconda-version }} | ||
shell: bash -l {0} | ||
run: | | ||
MINICONDA_INSTALL_PATH="${RUNNER_TEMP}/miniconda" | ||
mkdir -p "${MINICONDA_INSTALL_PATH}" | ||
case ${RUNNER_OS}-${RUNNER_ARCH} in | ||
Linux-X64) | ||
MINICONDA_ARCH="Linux-x86_64" | ||
;; | ||
macOS-ARM64) | ||
MINICONDA_ARCH="MacOSX-arm64" | ||
;; | ||
macOS-X64) | ||
MINICONDA_ARCH="MacOSX-x86_64" | ||
;; | ||
*) | ||
echo "::error::Platform ${RUNNER_OS}-${RUNNER_ARCH} currently unsupported using this action" | ||
exit 1 | ||
;; | ||
esac | ||
MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-py39_${MINICONDA_VERSION}-${MINICONDA_ARCH}.sh" | ||
curl -fsSL "${MINICONDA_URL}" -o "${MINICONDA_INSTALL_PATH}/miniconda.sh" | ||
bash "${MINICONDA_INSTALL_PATH}/miniconda.sh" -b -u -p "${MINICONDA_INSTALL_PATH}" | ||
rm -rf "${MINICONDA_INSTALL_PATH}/miniconda.sh" | ||
- name: Update GitHub path to include miniconda install | ||
shell: bash | ||
run: | | ||
MINICONDA_INSTALL_PATH="${RUNNER_TEMP}/miniconda" | ||
echo "${MINICONDA_INSTALL_PATH}/bin" >> $GITHUB_PATH | ||
- name: Setup miniconda env cache (with env file) | ||
id: miniconda-env-cache-env-file | ||
if: ${{ runner.os }} == 'macOS' && ${{ inputs.environment-file }} != '' | ||
uses: actions/cache@v2 | ||
with: | ||
path: ${{ runner.temp }}/conda-python-${{ inputs.python-version }} | ||
key: miniconda-env-${{ runner.os }}-${{ runner.arch }}-${{ inputs.python-version }}-${{ steps.get-date.outputs.today }}-${{ hashFiles(inputs.environment-file) }} | ||
- name: Setup miniconda env cache (without env file) | ||
id: miniconda-env-cache | ||
if: ${{ runner.os }} == 'macOS' && ${{ inputs.environment-file }} == '' | ||
uses: actions/cache@v2 | ||
with: | ||
path: ${{ runner.temp }}/conda-python-${{ inputs.python-version }} | ||
key: miniconda-env-${{ runner.os }}-${{ runner.arch }}-${{ inputs.python-version }}-${{ steps.get-date.outputs.today }} | ||
- name: Setup conda environment with python (v${{ inputs.python-version }}) | ||
if: steps.miniconda-env-cache-env-file.outputs.cache-hit != 'true' && steps.miniconda-env-cache.outputs.cache-hit != 'true' | ||
shell: bash | ||
env: | ||
PYTHON_VERSION: ${{ inputs.python-version }} | ||
ENV_FILE: ${{ inputs.environment-file }} | ||
run: | | ||
CONDA_BASE_ENV="${RUNNER_TEMP}/conda-python-${PYTHON_VERSION}" | ||
ENV_FILE_FLAG="" | ||
if [[ -f "${ENV_FILE}" ]]; then | ||
ENV_FILE_FLAG="--file ${ENV_FILE}" | ||
elif [[ -n "${ENV_FILE}" ]]; then | ||
echo "::warning::Specified env file (${ENV_FILE}) not found, not going to include it" | ||
fi | ||
conda create \ | ||
--yes \ | ||
--prefix "${CONDA_BASE_ENV}" \ | ||
"python=${PYTHON_VERSION}" \ | ||
${ENV_FILE_FLAG} \ | ||
cmake=3.22 \ | ||
conda-build=3.21 \ | ||
ninja=1.10 \ | ||
pkg-config=0.29 \ | ||
wheel=0.37 | ||
- name: Clone the base conda environment and update GitHub env | ||
shell: bash | ||
env: | ||
PYTHON_VERSION: ${{ inputs.python-version }} | ||
CONDA_BASE_ENV: ${{ runner.temp }}/conda-python-${{ inputs.python-version }} | ||
run: | | ||
CONDA_ENV="${RUNNER_TEMP}/conda_environment_${GITHUB_RUN_ID}" | ||
conda create \ | ||
--yes \ | ||
--prefix "${CONDA_ENV}" \ | ||
--clone "${CONDA_BASE_ENV}" | ||
# TODO: conda-build could not be cloned because it hardcodes the path, so it | ||
# could not be cached | ||
conda install --yes -p ${CONDA_ENV} conda-build=3.21 | ||
echo "CONDA_ENV=${CONDA_ENV}" >> "${GITHUB_ENV}" | ||
echo "CONDA_RUN=conda run -p ${CONDA_ENV} --no-capture-output" >> "${GITHUB_ENV}" | ||
echo "CONDA_BUILD=conda run -p ${CONDA_ENV} conda-build" >> "${GITHUB_ENV}" | ||
echo "CONDA_INSTALL=conda install -p ${CONDA_ENV}" >> "${GITHUB_ENV}" | ||
- name: Get disk space usage and throw an error for low disk space | ||
shell: bash | ||
run: | | ||
echo "Print the available disk space for manual inspection" | ||
df -h | ||
# Set the minimum requirement space to 4GB | ||
MINIMUM_AVAILABLE_SPACE_IN_GB=4 | ||
MINIMUM_AVAILABLE_SPACE_IN_KB=$(($MINIMUM_AVAILABLE_SPACE_IN_GB * 1024 * 1024)) | ||
# Use KB to avoid floating point warning like 3.1GB | ||
df -k | tr -s ' ' | cut -d' ' -f 4,9 | while read -r LINE; | ||
do | ||
AVAIL=$(echo $LINE | cut -f1 -d' ') | ||
MOUNT=$(echo $LINE | cut -f2 -d' ') | ||
if [ "$MOUNT" = "/" ]; then | ||
if [ "$AVAIL" -lt "$MINIMUM_AVAILABLE_SPACE_IN_KB" ]; then | ||
echo "There is only ${AVAIL}KB free space left in $MOUNT, which is less than the minimum requirement of ${MINIMUM_AVAILABLE_SPACE_IN_KB}KB. Please help create an issue to PyTorch Release Engineering via https://github.com/pytorch/test-infra/issues and provide the link to the workflow run." | ||
exit 1; | ||
else | ||
echo "There is ${AVAIL}KB free space left in $MOUNT, continue" | ||
fi | ||
fi | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.