diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..ef9d84a --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,12 @@ +# This is a template `CODEOWNERS` file for ops charms +# This file is managed by bootstack-charms-spec and should not be modified +# within individual charm repos. https://launchpad.net/bootstack-charms-spec + +# For more information about CODEOWNER, please refer to +# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#example-of-a-codeowners-file + +# These owners will be the default owners for everything in the repo. Unless a +# later match takes precedence, @canonical/bootstack will be requested for +# review when someone opens a pull request. +* @canonical/soleng-reviewers + diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml new file mode 100644 index 0000000..e9c32e2 --- /dev/null +++ b/.github/workflows/check.yaml @@ -0,0 +1,41 @@ +name: Check workflow running linter, unit and functional tests + +on: + workflow_call: + pull_request: + types: [opened, synchronize, reopened] + branches: [master, main] + paths-ignore: + - "**.md" + - "**.rst" + +jobs: + lint-unit: + uses: canonical/bootstack-actions/.github/workflows/lint-unit.yaml@v2 + strategy: + fail-fast: false + matrix: + python-version: ["3.8", "3.10"] + with: + python-version: ${{ matrix.python-version }} + tox-version: "<4" + working-directory: ./src + + func: + uses: canonical/bootstack-actions/.github/workflows/func.yaml@v3 + needs: lint-unit + strategy: + fail-fast: false + matrix: + include: + - juju-channel: "3.1/stable" + command: "make functional" + runs-on: "['self-hosted', 'xlarge']" + with: + command: ${{ matrix.command }} + juju-channel: ${{ matrix.juju-channel }} + nested-containers: false + provider: "lxd" + python-version: "3.10" + timeout-minutes: 120 + tox-version: "<4" diff --git a/.github/workflows/issues_to_jira.yaml b/.github/workflows/issues_to_jira.yaml new file mode 100644 index 0000000..cc44534 --- /dev/null +++ b/.github/workflows/issues_to_jira.yaml @@ -0,0 +1,25 @@ +# This is a template `issues_to_jira.yaml` file for ops charms +# This file is managed by bootstack-charms-spec and should not be modified +# within individual charm repos. https://launchpad.net/bootstack-charms-spec + +# This workflow requires to provide JIRA webhook URL via JIRA_URL GitHub Secret. +# +# Read more: +# https://support.atlassian.com/cloud-automation/docs/jira-automation-triggers/#Automationtriggers-Incomingwebhook +# +# Original code source: +# https://github.com/beliaev-maksim/github-to-jira-automation + +name: Issues to JIRA + +on: + issues: + # available via github.event.action + types: [opened, reopened, closed] + +jobs: + update: + name: Update Issue + uses: beliaev-maksim/github-to-jira-automation/.github/workflows/issues_to_jira.yaml@master + secrets: + JIRA_URL: ${{ secrets.JIRA_URL }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..309562b --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,25 @@ +# This is a template `release.yaml` file for ops charms +# This file is managed by bootstack-charms-spec and should not be modified +# within individual charm repos. https://launchpad.net/bootstack-charms-spec + +name: Release to Edge + +on: + push: + branches: [master, main] + +concurrency: + group: release + cancel-in-progress: true + +jobs: + check: + uses: ./.github/workflows/check.yaml + + release: + needs: check + uses: canonical/bootstack-actions/.github/workflows/charm-release.yaml@v2 + secrets: inherit + with: + channel: "latest/edge" + upload-image: false diff --git a/.github/workflows/sonar.yaml b/.github/workflows/sonar.yaml new file mode 100644 index 0000000..34c8d6f --- /dev/null +++ b/.github/workflows/sonar.yaml @@ -0,0 +1,17 @@ +# This is a template `sonar.yaml` file for ops charms +# This file is managed by bootstack-charms-spec and should not be modified +# within individual charm repos. https://launchpad.net/bootstack-charms-spec + +name: SonarCloud +on: + workflow_run: + workflows: + - PR workflow running lint checkers, unit and functional tests + types: [completed] + +jobs: + sonar: + uses: canonical/bootstack-actions/.github/workflows/sonar.yaml@main + secrets: inherit + with: + workflow-name: PR workflow running lint checkers, unit and functional tests diff --git a/Makefile b/Makefile index 6259dbc..07b952d 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,6 @@ build: clean @charmcraft -v pack ${BUILD_ARGS} @bash -c ./rename.sh @mkdir -p ${CHARM_BUILD_DIR}/${CHARM_NAME} - @unzip ${PROJECTPATH}/${CHARM_NAME}.charm -d ${CHARM_BUILD_DIR}/${CHARM_NAME} release: clean build @echo "Charm is built at ${CHARM_BUILD_DIR}/${CHARM_NAME}" diff --git a/src/tox.ini b/src/tox.ini index 5ae440a..c13e997 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -24,6 +24,8 @@ passenv = NO_PROXY SNAP_HTTP_PROXY SNAP_HTTPS_PROXY +allowlist_externals = + echo [testenv:lint] commands = @@ -57,9 +59,10 @@ deps = [testenv:unit] commands = - coverage run -m unittest discover -s {toxinidir}/tests/unit -v - coverage report --omit tests/*,mod/*,.tox/* - coverage html --omit tests/*,mod/*,.tox/* + echo "No unit tests. Skipping." + # coverage run -m unittest discover -s {toxinidir}/tests/unit -v + # coverage report --omit tests/*,mod/*,.tox/* + # coverage html --omit tests/*,mod/*,.tox/* deps = -r{toxinidir}/tests/unit/requirements.txt [testenv:func]