Skip to content

[pre-commit.ci] pre-commit autoupdate #256

[pre-commit.ci] pre-commit autoupdate

[pre-commit.ci] pre-commit autoupdate #256

Workflow file for this run

# Copyright 2021 Agnostiq Inc.
#
# This file is part of Covalent.
#
# Licensed under the Apache License 2.0 (the "License"). A copy of the
# License may be obtained with this software package or at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Use of this file is prohibited except in compliance with the License.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: tests
on:
pull_request:
workflow_run:
workflows: [changelog]
types: [completed]
jobs:
tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest']
container:
- python:3.8-buster
- python:3.8-bullseye
- python:3.9-buster
- python:3.9-bullseye
- centos/python-38-centos7
experimental: [false]
include:
- os: macos-latest
python-version: '3.8'
experimental: false
container: ${{ matrix.container }}
continue-on-error: ${{ matrix.experimental }}
outputs:
release: ${{ steps.push.outputs.release }}
steps:
- name: Check out head
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Set up Python
if: matrix.os == 'macos-latest'
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
pip install --no-cache-dir -r ./tests/requirements.txt
- name: Build SSH plugin
run: python setup.py sdist
- name: Validate plugin
run: |
VERSION="$(cat ./VERSION)"
cd dist
tar xzf covalent-ssh-plugin-${VERSION}.tar.gz
diff -r covalent-ssh-plugin-${VERSION}/covalent_ssh_plugin/ ../covalent_ssh_plugin/
rm -rf covalent-ssh-plugin-${VERSION}/
- name: Install SSH plugin
run: |
VERSION="$(cat ./VERSION)"
pip install ./dist/covalent-ssh-plugin-${VERSION}.tar.gz
- name: Start Covalent
run: covalent db migrate && covalent start -d
- name: Test plugin loading
run: from covalent.executor import SSHExecutor
shell: python
- name: Run tests
env:
COVALENT_PLUGIN_LOAD: false
run: |
PYTHONPATH=$PWD/tests pytest -m "not functional_tests" -vv tests/ --cov=covalent_ssh_plugin
- name: Generate coverage report
run: coverage xml -o coverage.xml
- name: Upload report to Codecov
if: >
matrix.os == 'ubuntu-latest'
&& matrix.container == 'python:3.8-buster'
uses: codecov/codecov-action@v3
with:
files: ./coverage.xml
name: "Plugin Unit Tests"
- name: Get latest release
uses: actions-ecosystem/action-get-latest-tag@v1
id: get-latest-tag
if: github.ref == 'refs/heads/develop' && matrix.os == 'ubuntu-latest' && matrix.container == 'python:3.8-buster'
with:
semver_only: true
- name: Push to main
id: push
if: github.ref == 'refs/heads/develop' && matrix.os == 'ubuntu-latest' && matrix.container == 'python:3.8-buster'
run: |
MASTER_VERSION="$(echo ${{ steps.get-latest-tag.outputs.tag }} | cut -c2- )"
VERSION="$(cat ./VERSION)"
release=false
if [ "$MASTER_VERSION" = "$VERSION" ] ; then
echo "$VERSION has been previously released."
else
git config --global --add safe.directory $(realpath .)
git config user.name "CovalentOpsBot"
git config user.email "[email protected]"
git remote set-url origin https://${{ secrets.COVALENT_OPS_BOT_TOKEN }}@github.com/AgnostiqHQ/covalent-ssh-plugin.git
git push origin HEAD:main --force
release=true
fi
echo "RELEASE=$release" >> $GITHUB_ENV
echo "::set-output name=release::$release"
release:
needs: tests
if: github.ref == 'refs/heads/develop' && needs.tests.outputs.release == 'true'
uses: AgnostiqHQ/covalent-ssh-plugin/.github/workflows/release.yml@develop
secrets: inherit
with:
prerelease: true