Skip to content

Commit

Permalink
[DPE-3074] Fix rock entry point for MongoDB 5 (#29)
Browse files Browse the repository at this point in the history
* Fix rock entry point

* Test version

* Revert test changes

* Update worflow files to support new rockcraft

* Set correct branch (5/edge) for integration tests

* Specify 5/edge version for mongodb-k8s charm: correct way

* Revert integration

* Update retag_rock

* Install rockcraft

* Checkout correct rock branch

* Checkout correct charm branch for tests

* Checkout correct charm branch for tests

* Temporary disable ha-integraton tests

* Specify rockraft version

* Add keep-models tox flag for debug

* Revert change for mongodb 5

* update workflows to match Dmitrys working local enc

---------

Co-authored-by: Mia Altieri <[email protected]>
  • Loading branch information
dmitry-ratushnyy and MiaAltieri authored Dec 14, 2023
1 parent be6e870 commit 9db0183
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 17 deletions.
7 changes: 1 addition & 6 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,10 @@ jobs:
- name: Install dependencies
run: |
sudo snap install yq
sudo snap install rockcraft --classic --edge
sudo snap install rockcraft --classic --channel=latest/stable --revision 1206
sudo snap install charmcraft --classic --revision 1349
- name: Build ROCK
run: |
app_version=$(yq '.version' rockcraft.yaml)
version=$(yq '(.version|split("-"))[0]' rockcraft.yaml)
base=$(yq '(.base|split(":"))[1]' rockcraft.yaml)
tag=${version}-${base}_edge
sed -i "s/${app_version}/${tag}/g" rockcraft.yaml
rockcraft pack
- name: Upload locally built ROCK artifact
uses: actions/upload-artifact@v3
Expand Down
11 changes: 8 additions & 3 deletions .github/workflows/integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
needs: build
strategy:
matrix:
env: [integration, ha-integration, tls-integration]
env: [integration, tls-integration]
fail-fast: false
steps:
- name: Checkout repository
Expand All @@ -32,10 +32,15 @@ jobs:
juju-channel: 3.1/stable
# This is needed until
# https://bugs.launchpad.net/juju/+bug/1977582 is fixed
bootstrap-options: "--agent-version 3.1.5"
bootstrap-options: "--agent-version 3.1.6"
- name: Pin charmcraft version
run: |
sudo snap refresh --channel=2.2 charmcraft
sudo snap refresh charmcraft --classic --revision 1349
sudo snap refresh charmcraft --hold=forever
- name: Install rockcraft
run: |
sudo snap install rockcraft --classic --channel=latest/stable --revision 1206
sudo snap refresh rockcraft --hold=forever
- uses: actions/download-artifact@v3
with:
name: mongodb-rock
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ jobs:
- name: Import and push to GHCR
run: |
version=$(yq '(.version|split("-"))[0]' rockcraft.yaml)
base=$(yq '(.base|split(":"))[1]' rockcraft.yaml)
base=$(yq '(.base|split("@"))[1]' rockcraft.yaml)
tag=${version}-${base}_edge
sudo skopeo --insecure-policy copy \
oci-archive:charmed-mongodb_${tag}_amd64.rock \
oci-archive:charmed-mongodb_${version}_amd64.rock \
docker-daemon:ghcr.io/canonical/charmed-mongodb:${tag}
docker push ghcr.io/canonical/charmed-mongodb:${tag}
2 changes: 1 addition & 1 deletion retag_rock.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
NAME=$(yq '.name' rockcraft.yaml)
APP_VERSION=$(yq '.version' rockcraft.yaml)
VERSION=$(yq '(.version|split("-"))[0]' rockcraft.yaml)
BASE=$(yq '(.base|split(":"))[1]' rockcraft.yaml)
BASE=$(yq '(.base|split("@"))[1]' rockcraft.yaml)
TAG=${VERSION}-${BASE}_edge
REGISTRY_NAMESPACE=ghcr.io/canonical

Expand Down
10 changes: 9 additions & 1 deletion rockcraft.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright 2023 Canonical Ltd.
# See LICENSE file for licensing details.
name: charmed-mongodb # the name of your ROCK
base: ubuntu:22.04 # the base environment for this ROCK
base: ubuntu@22.04 # the base environment for this ROCK
version: "5.0.14-12" # just for humans. Semantic versioning is recommended
summary: MongoDB in a rock. # 79 char long summary
description: |
Expand Down Expand Up @@ -71,3 +71,11 @@ parts:
source: licenses
organize:
LICENSE-rock: licenses/LICENSE-rock

entry:
plugin: dump
source: scripts
organize:
start.sh: bin/start.sh
stage:
- bin/start.sh
8 changes: 4 additions & 4 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ setenv =
name=charmed-mongodb
registry_namespace=ghcr.io/canonical
repo=https://github.com/canonical/mongodb-k8s-operator.git
branch=5/edge

[testenv:lint]
description = run linters
Expand All @@ -28,7 +29,7 @@ commands =
then rockcraft pack; ./retag_rock.sh; fi'
bash -ec 'microk8s ctr image import {env:name}_*-$(yq .base rockcraft.yaml | \
cut -c 8-)_edge_amd64.rock --base-name {env:registry_namespace}/{env:name}'
bash -ec 'if ! [ -d operator ]; then git clone {env:repo} operator; fi' {posargs}
bash -ec 'if ! [ -d operator ]; then git clone --single-branch --branch {env:branch} {env:repo} operator; fi' {posargs}
tox --workdir operator -c operator -e integration

[testenv:ha-integration]
Expand All @@ -42,9 +43,8 @@ commands =
then rockcraft pack; ./retag_rock.sh; fi'
bash -ec 'microk8s ctr image import {env:name}_*-$(yq .base rockcraft.yaml | \
cut -c 8-)_edge_amd64.rock --base-name {env:registry_namespace}/{env:name}'
bash -ec 'if ! [ -d operator ]; then git clone {env:repo} operator; fi' {posargs}
bash -ec 'if ! [ -d operator ]; then git clone --single-branch --branch {env:branch} {env:repo} operator; fi' {posargs}
tox --workdir operator -c operator -e ha-integration

[testenv:tls-integration]
description = run operator integration tests
skip_install = true
Expand All @@ -56,5 +56,5 @@ commands =
then rockcraft pack; ./retag_rock.sh; fi'
bash -ec 'microk8s ctr image import {env:name}_*-$(yq .base rockcraft.yaml | \
cut -c 8-)_edge_amd64.rock --base-name {env:registry_namespace}/{env:name}'
bash -ec 'if ! [ -d operator ]; then git clone {env:repo} operator; fi' {posargs}
bash -ec 'if ! [ -d operator ]; then git clone --single-branch --branch {env:branch} {env:repo} operator; fi' {posargs}
tox --workdir operator -c operator -e tls-integration

0 comments on commit 9db0183

Please sign in to comment.