diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4321a4a..6d5268c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -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 diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml index a44e960..249185d 100644 --- a/.github/workflows/integration.yaml +++ b/.github/workflows/integration.yaml @@ -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 @@ -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 diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 10c4c87..e8d1f1c 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -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} diff --git a/retag_rock.sh b/retag_rock.sh index 30a5f74..761e00d 100755 --- a/retag_rock.sh +++ b/retag_rock.sh @@ -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 diff --git a/rockcraft.yaml b/rockcraft.yaml index 6a6bbb6..9d62794 100644 --- a/rockcraft.yaml +++ b/rockcraft.yaml @@ -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: | @@ -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 diff --git a/tox.ini b/tox.ini index 4b0d43e..8e566df 100644 --- a/tox.ini +++ b/tox.ini @@ -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 @@ -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] @@ -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 @@ -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