From 92caff1b82ab5cf034bb7cd18581fa7e53ddfdbb Mon Sep 17 00:00:00 2001 From: Matus Kosut Date: Sun, 31 Oct 2021 15:36:14 +0100 Subject: [PATCH 1/9] update version to match libjuju and add snap build action --- .github/workflows/pythonpackage.yml | 8 +++--- .github/workflows/pythonpublish.yml | 4 +-- .github/workflows/snappublish.yml | 42 +++++++++++++++++++++++++++++ .gitignore | 4 ++- VERSION | 2 +- setup.py | 2 ++ snap/snapcraft.yaml.tpl | 6 ++--- 7 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/snappublish.yml diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index e56a83b..8239f23 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -19,16 +19,16 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install --upgrade pip - pip install -r requirements.txt + python3 -m pip install --upgrade pip + python3 -m pip install -r requirements.txt - name: Lint with flake8 run: | - pip install flake8 + python3 -m pip install flake8 # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --ignore=D203,D100,D103,D202,D200,W504 --max-complexity=10 --max-line-length=120 --statistics - name: Test with pytest run: | - pip install pytest + python3 -m pip install pytest pytest --tb native -ra -v -s diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/pythonpublish.yml index 980c75b..cbacb8e 100644 --- a/.github/workflows/pythonpublish.yml +++ b/.github/workflows/pythonpublish.yml @@ -16,8 +16,8 @@ jobs: python-version: '3.6' - name: Install dependencies run: | - python -m pip install --upgrade pip - pip install setuptools wheel twine + python3 -m pip install --upgrade pip + python3 -m pip install setuptools wheel twine - name: Build run: python setup.py sdist bdist_wheel - name: Publish diff --git a/.github/workflows/snappublish.yml b/.github/workflows/snappublish.yml new file mode 100644 index 0000000..1d60ab3 --- /dev/null +++ b/.github/workflows/snappublish.yml @@ -0,0 +1,42 @@ +name: Upload Snap Package + +on: + create: + tags: + - refs/tags/* + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: '3.8' + - name: Install Snapcraft + uses: samuelmeuli/action-snapcraft@v1 + - name: Install dependencies + run: | + python3 -m pip install --upgrade pip + python3 -m pip install tox + - name: Render snapcraft config + run: | + export SNAPCRAFT_PROJECT_VERSION=$(cat VERSION) + envsubst < snap/snapcraft.yaml.tpl > snap/snapcraft.yaml + rm snap/snapcraft.yaml.tpl + - name: Build snap + run: | + sg lxd -c 'snapcraft --use-lxd' + export SNAP_PATH="jujuna_$(cat VERSION)_amd64.snap" + ls $SNAP_PATH + + - uses: actions/upload-artifact@v2 + with: + name: jujuna.snap + path: ${{ env.SNAP_PATH }} + + - name: Publish snap + run: | + [[ "${GITHUB_REF}" =~ refs/tags/$(cat VERSION) ]] && echo "upload snap" || echo "not publishing" + shell: bash diff --git a/.gitignore b/.gitignore index 8675149..e4cf782 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ +snap/snapcraft.yaml + .vagrant vagrant.retry @@ -104,4 +106,4 @@ venv.bak/ .DS_Store # Snapcraft -*.snap \ No newline at end of file +*.snap diff --git a/VERSION b/VERSION index a45be46..834f262 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.2.8 +2.8.0 diff --git a/setup.py b/setup.py index 9ff6e60..86710f0 100644 --- a/setup.py +++ b/setup.py @@ -30,6 +30,8 @@ "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Environment :: Console" diff --git a/snap/snapcraft.yaml.tpl b/snap/snapcraft.yaml.tpl index d704877..d00b39f 100644 --- a/snap/snapcraft.yaml.tpl +++ b/snap/snapcraft.yaml.tpl @@ -1,5 +1,5 @@ name: jujuna -base: core18 +base: core20 version: "${SNAPCRAFT_PROJECT_VERSION}" summary: Jujuna, continuous deployment, upgrade and testing for Juju. description: | @@ -11,8 +11,8 @@ confinement: strict parts: jujuna: plugin: python - python-version: python3 - requirements: ./requirements.txt + requirements: + - ./requirements.txt source: . apps: jujuna: From a797b388908fccea5913664e04d7f3e11db7e47e Mon Sep 17 00:00:00 2001 From: Matus Kosut Date: Sun, 31 Oct 2021 15:47:45 +0100 Subject: [PATCH 2/9] test snap publish --- .github/workflows/snappublish.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/snappublish.yml b/.github/workflows/snappublish.yml index 1d60ab3..9b7b90d 100644 --- a/.github/workflows/snappublish.yml +++ b/.github/workflows/snappublish.yml @@ -1,9 +1,9 @@ name: Upload Snap Package -on: - create: - tags: - - refs/tags/* +# on: +# create: +# tags: +# - refs/tags/* jobs: deploy: @@ -36,7 +36,11 @@ jobs: name: jujuna.snap path: ${{ env.SNAP_PATH }} + # https://circleci.com/docs/2.0/build-publish-snap-packages/ - name: Publish snap run: | - [[ "${GITHUB_REF}" =~ refs/tags/$(cat VERSION) ]] && echo "upload snap" || echo "not publishing" + mkdir .snapcraft + echo $SNAPCRAFT_TOKEN | base64 --decode --ignore-garbage > .snapcraft/snapcraft.cfg + snapcraft push *.snap --release edge + # [[ "${GITHUB_REF}" =~ refs/tags/$(cat VERSION) ]] && snapcraft push *.snap --release edge || echo "not publishing" shell: bash From 1dea21e46dbfad25fbe9b9c9ef5e9bf476d5d74f Mon Sep 17 00:00:00 2001 From: Matus Kosut Date: Sun, 31 Oct 2021 15:51:54 +0100 Subject: [PATCH 3/9] test snap publish --- .github/workflows/snappublish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/snappublish.yml b/.github/workflows/snappublish.yml index 9b7b90d..e2d1342 100644 --- a/.github/workflows/snappublish.yml +++ b/.github/workflows/snappublish.yml @@ -1,5 +1,6 @@ name: Upload Snap Package +on: push # on: # create: # tags: From 36c778d18603460e93edb872b23fef66e8e295cd Mon Sep 17 00:00:00 2001 From: Matus Kosut Date: Sun, 31 Oct 2021 15:54:40 +0100 Subject: [PATCH 4/9] use snapcraft without lxd --- .github/workflows/snappublish.yml | 2 +- .travis.yml | 29 ----------------------------- 2 files changed, 1 insertion(+), 30 deletions(-) delete mode 100644 .travis.yml diff --git a/.github/workflows/snappublish.yml b/.github/workflows/snappublish.yml index e2d1342..6800f97 100644 --- a/.github/workflows/snappublish.yml +++ b/.github/workflows/snappublish.yml @@ -28,7 +28,7 @@ jobs: rm snap/snapcraft.yaml.tpl - name: Build snap run: | - sg lxd -c 'snapcraft --use-lxd' + snapcraft export SNAP_PATH="jujuna_$(cat VERSION)_amd64.snap" ls $SNAP_PATH diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index df5920d..0000000 --- a/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: python -sudo: false -matrix: - include: - - python: "3.5" - dist: xenial - - python: "3.6" - dist: xenial - env: BUILD_SNAP=true - - python: "3.7" - dist: bionic -install: - - pip install -q pytest flake8 pip>=19 tox-travis - - pip install tox - - if [[ "$BUILD_SNAP" == true ]]; then sudo apt-get install snapcraft; fi -script: - - tox - - tox -e lint - - tox -e docs - - export SNAPCRAFT_PROJECT_VERSION=$(cat VERSION) && envsubst < snap/snapcraft.yaml.tpl > snap/snapcraft.yaml - - if [[ "$BUILD_SNAP" == true ]]; then snapcraft; fi -deploy: - provider: snap - snap: jujuna_*_amd64.snap - channel: edge - skip_cleanup: true - on: - branch: master - python: "3.6" From 2af2a774819a5beb80acdc2f8eabbc6e27437750 Mon Sep 17 00:00:00 2001 From: Matus Kosut Date: Sun, 31 Oct 2021 15:59:43 +0100 Subject: [PATCH 5/9] add lxd setup and use sg lxd --- .github/workflows/pythonpackage.yml | 4 ++-- .github/workflows/pythonpublish.yml | 5 ++--- .github/workflows/snappublish.yml | 12 ++++++++---- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 8239f23..c7ff29f 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -12,9 +12,9 @@ jobs: python-version: [3.5, 3.6, 3.7] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/pythonpublish.yml index cbacb8e..8dfc1aa 100644 --- a/.github/workflows/pythonpublish.yml +++ b/.github/workflows/pythonpublish.yml @@ -9,9 +9,8 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - name: Set up Python - uses: actions/setup-python@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 with: python-version: '3.6' - name: Install dependencies diff --git a/.github/workflows/snappublish.yml b/.github/workflows/snappublish.yml index 6800f97..0d9b647 100644 --- a/.github/workflows/snappublish.yml +++ b/.github/workflows/snappublish.yml @@ -10,11 +10,15 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - name: Set up Python - uses: actions/setup-python@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 with: python-version: '3.8' + - name: Set up lxd + run: | + sudo usermod --append --groups lxd $(whoami) + sudo su $(whoami) -c 'lxd init --auto' + sudo su $(whoami) -c 'lxc network set lxdbr0 ipv6.address none' - name: Install Snapcraft uses: samuelmeuli/action-snapcraft@v1 - name: Install dependencies @@ -28,7 +32,7 @@ jobs: rm snap/snapcraft.yaml.tpl - name: Build snap run: | - snapcraft + sg lxd -c 'snapcraft --use-lxd' export SNAP_PATH="jujuna_$(cat VERSION)_amd64.snap" ls $SNAP_PATH From 46dd778e33603c9c3a25d4aae2f158f6877f9444 Mon Sep 17 00:00:00 2001 From: Matus Kosut Date: Sun, 31 Oct 2021 16:04:03 +0100 Subject: [PATCH 6/9] remove artifact job --- .github/workflows/snappublish.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/snappublish.yml b/.github/workflows/snappublish.yml index 0d9b647..0d89131 100644 --- a/.github/workflows/snappublish.yml +++ b/.github/workflows/snappublish.yml @@ -36,11 +36,6 @@ jobs: export SNAP_PATH="jujuna_$(cat VERSION)_amd64.snap" ls $SNAP_PATH - - uses: actions/upload-artifact@v2 - with: - name: jujuna.snap - path: ${{ env.SNAP_PATH }} - # https://circleci.com/docs/2.0/build-publish-snap-packages/ - name: Publish snap run: | From b7ad65bbcb83c65fc2ee7fbc9a77b30f80b7e612 Mon Sep 17 00:00:00 2001 From: Matus Kosut Date: Sun, 31 Oct 2021 16:04:38 +0100 Subject: [PATCH 7/9] remove path variable --- .github/workflows/snappublish.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/snappublish.yml b/.github/workflows/snappublish.yml index 0d89131..19000b5 100644 --- a/.github/workflows/snappublish.yml +++ b/.github/workflows/snappublish.yml @@ -33,8 +33,6 @@ jobs: - name: Build snap run: | sg lxd -c 'snapcraft --use-lxd' - export SNAP_PATH="jujuna_$(cat VERSION)_amd64.snap" - ls $SNAP_PATH # https://circleci.com/docs/2.0/build-publish-snap-packages/ - name: Publish snap From f77792587e569702bb013c6f24ebd54fbad1bc0f Mon Sep 17 00:00:00 2001 From: Matus Kosut Date: Sun, 31 Oct 2021 16:11:24 +0100 Subject: [PATCH 8/9] add snap auth --- .github/workflows/snappublish.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/snappublish.yml b/.github/workflows/snappublish.yml index 19000b5..98c1c29 100644 --- a/.github/workflows/snappublish.yml +++ b/.github/workflows/snappublish.yml @@ -36,9 +36,11 @@ jobs: # https://circleci.com/docs/2.0/build-publish-snap-packages/ - name: Publish snap + env: + SNAPCRAFT_LOGIN_FILE: ${{ secrets.SNAPCRAFT_TOKEN }} run: | mkdir .snapcraft - echo $SNAPCRAFT_TOKEN | base64 --decode --ignore-garbage > .snapcraft/snapcraft.cfg + echo $SNAPCRAFT_LOGIN_FILE | base64 --decode --ignore-garbage > .snapcraft/snapcraft.cfg snapcraft push *.snap --release edge # [[ "${GITHUB_REF}" =~ refs/tags/$(cat VERSION) ]] && snapcraft push *.snap --release edge || echo "not publishing" shell: bash From 4719b94ca18b698164536f02d4c4334f2be1f685 Mon Sep 17 00:00:00 2001 From: Matus Kosut Date: Sun, 31 Oct 2021 16:21:21 +0100 Subject: [PATCH 9/9] upload snap as artifact --- .github/workflows/snappublish.yml | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/.github/workflows/snappublish.yml b/.github/workflows/snappublish.yml index 98c1c29..5432f46 100644 --- a/.github/workflows/snappublish.yml +++ b/.github/workflows/snappublish.yml @@ -34,13 +34,19 @@ jobs: run: | sg lxd -c 'snapcraft --use-lxd' - # https://circleci.com/docs/2.0/build-publish-snap-packages/ - - name: Publish snap - env: - SNAPCRAFT_LOGIN_FILE: ${{ secrets.SNAPCRAFT_TOKEN }} - run: | - mkdir .snapcraft - echo $SNAPCRAFT_LOGIN_FILE | base64 --decode --ignore-garbage > .snapcraft/snapcraft.cfg - snapcraft push *.snap --release edge - # [[ "${GITHUB_REF}" =~ refs/tags/$(cat VERSION) ]] && snapcraft push *.snap --release edge || echo "not publishing" - shell: bash + - uses: actions/upload-artifact@v2 + with: + name: jujuna + path: | + jujuna*.snap + + # https://circleci.com/docs/2.0/build-publish-snap-packages/ + # - name: Publish snap + # env: + # SNAPCRAFT_LOGIN_FILE: ${{ secrets.SNAPCRAFT_TOKEN }} + # run: | + # mkdir .snapcraft + # echo $SNAPCRAFT_LOGIN_FILE | base64 --decode --ignore-garbage > .snapcraft/snapcraft.cfg + # snapcraft push *.snap --release edge + # # [[ "${GITHUB_REF}" =~ refs/tags/$(cat VERSION) ]] && snapcraft push *.snap --release edge || echo "not publishing" + # shell: bash