diff --git a/.github/workflows/action-conda-publish.yml b/.github/workflows/action-conda-publish.yml new file mode 100644 index 0000000000..c28f58267f --- /dev/null +++ b/.github/workflows/action-conda-publish.yml @@ -0,0 +1,83 @@ +name: Anaconda Publish + +on: + release: + types: [published] + # use this to test before actual release and publish + # push: + # branches: + # - some_test_branch + +jobs: + + publish: + name: publish / python-3.8 / ubuntu-latest + runs-on: 'ubuntu-latest' + steps: + - uses: actions/checkout@v2 + - uses: goanpeca/setup-miniconda@v1 + with: + auto-update-conda: true + python-version: "3.8" + miniconda-version: "latest" + channels: conda-forge + - name: Show conda config + shell: bash -l {0} + run: | + conda info + conda list + conda config --show-sources + conda config --show + - name: Python info + shell: bash -l {0} + run: | + which python + python --version + - name: Install build dependencies + shell: bash -l {0} + run: conda install -y conda-build conda-verify ripgrep anaconda-client + - name: Build the conda package + shell: bash -l {0} + run: | + conda config --set anaconda_upload no + export BUILD_FOLDER=/tmp/esmvalcore/_build + mkdir -p $BUILD_FOLDER + conda build package \ + --channel esmvalgroup --channel conda-forge \ + --croot $BUILD_FOLDER \ + - name: Push the package to anaconda cloud + shell: bash -l {0} + run: | + export BUILD_FOLDER=/tmp/esmvalcore/_build + # use --label test before actual release and check all works well + anaconda --token ${{ secrets.ANACONDA_TOKEN }} upload --user esmvalgroup $BUILD_FOLDER/noarch/*.tar.bz2 + verify: + name: verify / python-${{ matrix.python-version }} / ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: ['ubuntu-latest'] # may extent to osx in the future + python-version: ["3.6", "3.7", "3.8"] + runs-on: ${{ matrix.os }} + needs: publish + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: "0" + - uses: goanpeca/setup-miniconda@v1 + with: + python-version: ${{ matrix.python-version }} + miniconda-version: "latest" + channels: esmvalgroup,conda-forge + - shell: bash -l {0} + run: conda --version + - shell: bash -l {0} + run: which conda + - shell: bash -l {0} + run: python -V + - shell: bash -l {0} + run: conda install esmvalcore + - shell: bash -l {0} + run: esmvaltool --help + - shell: bash -l {0} + run: esmvaltool version diff --git a/doc/changelog.rst b/doc/changelog.rst index 78330c519d..64f1a84b4e 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -44,6 +44,8 @@ Improvements - Update CMIP6 tables to 6.9.32 (`#706 `__) `Javier Vegas-Regidor `__ - Default config-user path now set in config-user read function (`#791 `__) `Javier Vegas-Regidor `__ - Add custom variable lweGrace (`#692 `__) `bascrezee `__ +- Create Github Actions workflow to build and deploy on Test PyPi and PyPi (`#820 `__) `Valeriu Predoi `__ +- Build and publish the esmvalcore package to conda via Github Actions workflow (`#825 `__) `Valeriu Predoi `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~