From 5672e2121975600aa860ce26b8768282233d29a8 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Thu, 1 Jun 2023 18:21:55 +0200 Subject: [PATCH] move to `setup-micromamba` (#7878) * transition to setup-micromamba * transition the last few ci to setup-micromamba * remove the obsolete and unused `parse_logs` script * don't specify `environment-file: false` --- .github/workflows/benchmarks-last-release.yml | 8 +- .github/workflows/benchmarks.yml | 8 +- .github/workflows/ci-additional.yaml | 30 +++--- .github/workflows/ci.yaml | 8 +- .github/workflows/parse_logs.py | 102 ------------------ .github/workflows/upstream-dev-ci.yaml | 4 +- 6 files changed, 28 insertions(+), 132 deletions(-) delete mode 100644 .github/workflows/parse_logs.py diff --git a/.github/workflows/benchmarks-last-release.yml b/.github/workflows/benchmarks-last-release.yml index 0621a59959f..e1ae9b1b62e 100644 --- a/.github/workflows/benchmarks-last-release.yml +++ b/.github/workflows/benchmarks-last-release.yml @@ -22,13 +22,13 @@ jobs: fetch-depth: 0 - name: Set up conda environment - uses: mamba-org/provision-with-micromamba@v15 + uses: mamba-org/setup-micromamba@v1 with: environment-file: ${{env.CONDA_ENV_FILE}} environment-name: xarray-tests - cache-env: true - cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}-benchmark" - extra-specs: | + cache-environment: true + cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}-benchmark" + create-args: >- asv - name: 'Get Previous tag' diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index b9a8d773c5a..ade00b942e7 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -22,13 +22,13 @@ jobs: fetch-depth: 0 - name: Set up conda environment - uses: mamba-org/provision-with-micromamba@v15 + uses: mamba-org/setup-micromamba@v1 with: environment-file: ${{env.CONDA_ENV_FILE}} environment-name: xarray-tests - cache-env: true - cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}-benchmark" - extra-specs: | + cache-environment: true + cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}-benchmark" + create-args: >- asv diff --git a/.github/workflows/ci-additional.yaml b/.github/workflows/ci-additional.yaml index 6628002cbf0..99ebefd9338 100644 --- a/.github/workflows/ci-additional.yaml +++ b/.github/workflows/ci-additional.yaml @@ -53,15 +53,15 @@ jobs: echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - name: Setup micromamba - uses: mamba-org/provision-with-micromamba@v15 + uses: mamba-org/setup-micromamba@v1 with: environment-file: ${{env.CONDA_ENV_FILE}} environment-name: xarray-tests - extra-specs: | + create-args: >- python=${{env.PYTHON_VERSION}} conda - cache-env: true - cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}" + cache-environment: true + cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}" - name: Install xarray run: | @@ -100,15 +100,15 @@ jobs: run: | echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - name: Setup micromamba - uses: mamba-org/provision-with-micromamba@v15 + uses: mamba-org/setup-micromamba@v1 with: environment-file: ${{env.CONDA_ENV_FILE}} environment-name: xarray-tests - extra-specs: | + create-args: >- python=${{env.PYTHON_VERSION}} conda - cache-env: true - cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}" + cache-environment: true + cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}" - name: Install xarray run: | python -m pip install --no-deps -e . @@ -154,15 +154,15 @@ jobs: run: | echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - name: Setup micromamba - uses: mamba-org/provision-with-micromamba@v15 + uses: mamba-org/setup-micromamba@v1 with: environment-file: ${{env.CONDA_ENV_FILE}} environment-name: xarray-tests - extra-specs: | + create-args: >- python=${{env.PYTHON_VERSION}} conda - cache-env: true - cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}" + cache-environment: true + cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}" - name: Install xarray run: | python -m pip install --no-deps -e . @@ -210,16 +210,14 @@ jobs: fetch-depth: 0 # Fetch all history for all branches and tags. - name: Setup micromamba - uses: mamba-org/provision-with-micromamba@v15 + uses: mamba-org/setup-micromamba@v1 with: environment-name: xarray-tests - environment-file: false - extra-specs: | + create-args: >- python=3.10 pyyaml conda python-dateutil - channels: conda-forge - name: minimum versions policy run: | diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 455b2b4bd9a..da4ad32b1f5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -92,13 +92,13 @@ jobs: echo "PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV - name: Setup micromamba - uses: mamba-org/provision-with-micromamba@v15 + uses: mamba-org/setup-micromamba@v1 with: environment-file: ${{ env.CONDA_ENV_FILE }} environment-name: xarray-tests - cache-env: true - cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{matrix.python-version}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}" - extra-specs: | + cache-environment: true + cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{matrix.python-version}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}" + create-args: >- python=${{matrix.python-version}} conda diff --git a/.github/workflows/parse_logs.py b/.github/workflows/parse_logs.py deleted file mode 100644 index c0674aeac0b..00000000000 --- a/.github/workflows/parse_logs.py +++ /dev/null @@ -1,102 +0,0 @@ -# type: ignore -import argparse -import functools -import json -import pathlib -import textwrap -from dataclasses import dataclass - -from pytest import CollectReport, TestReport - - -@dataclass -class SessionStart: - pytest_version: str - outcome: str = "status" - - @classmethod - def _from_json(cls, json): - json_ = json.copy() - json_.pop("$report_type") - return cls(**json_) - - -@dataclass -class SessionFinish: - exitstatus: str - outcome: str = "status" - - @classmethod - def _from_json(cls, json): - json_ = json.copy() - json_.pop("$report_type") - return cls(**json_) - - -def parse_record(record): - report_types = { - "TestReport": TestReport, - "CollectReport": CollectReport, - "SessionStart": SessionStart, - "SessionFinish": SessionFinish, - } - cls = report_types.get(record["$report_type"]) - if cls is None: - raise ValueError(f"unknown report type: {record['$report_type']}") - - return cls._from_json(record) - - -@functools.singledispatch -def format_summary(report): - return f"{report.nodeid}: {report}" - - -@format_summary.register -def _(report: TestReport): - message = report.longrepr.chain[0][1].message - return f"{report.nodeid}: {message}" - - -@format_summary.register -def _(report: CollectReport): - message = report.longrepr.split("\n")[-1].removeprefix("E").lstrip() - return f"{report.nodeid}: {message}" - - -def format_report(reports, py_version): - newline = "\n" - summaries = newline.join(format_summary(r) for r in reports) - message = textwrap.dedent( - """\ -
Python {py_version} Test Summary - - ``` - {summaries} - ``` - -
- """ - ).format(summaries=summaries, py_version=py_version) - return message - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument("filepath", type=pathlib.Path) - args = parser.parse_args() - - py_version = args.filepath.stem.split("-")[1] - - print("Parsing logs ...") - - lines = args.filepath.read_text().splitlines() - reports = [parse_record(json.loads(line)) for line in lines] - - failed = [report for report in reports if report.outcome == "failed"] - - message = format_report(failed, py_version=py_version) - - output_file = pathlib.Path("pytest-logs.txt") - print(f"Writing output file to: {output_file.absolute()}") - output_file.write_text(message) diff --git a/.github/workflows/upstream-dev-ci.yaml b/.github/workflows/upstream-dev-ci.yaml index 89d6675c65a..7c60f20125e 100644 --- a/.github/workflows/upstream-dev-ci.yaml +++ b/.github/workflows/upstream-dev-ci.yaml @@ -56,11 +56,11 @@ jobs: with: fetch-depth: 0 # Fetch all history for all branches and tags. - name: Set up conda environment - uses: mamba-org/provision-with-micromamba@v15 + uses: mamba-org/setup-micromamba@v1 with: environment-file: ci/requirements/environment.yml environment-name: xarray-tests - extra-specs: | + create-args: >- python=${{ matrix.python-version }} pytest-reportlog conda