Skip to content

Commit

Permalink
Interrupted upgrade to master
Browse files Browse the repository at this point in the history
  • Loading branch information
Continuous integration committed Oct 1, 2024
1 parent b5f5c94 commit 4e1d76a
Show file tree
Hide file tree
Showing 12 changed files with 269 additions and 6 deletions.
6 changes: 6 additions & 0 deletions .UPGRADE_INSTRUCTIONS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
The `create.diff` file is a recommendation of the changes that you should apply to your project.
You should apply the changes shown in the diff file on `CONST_create_template/<file>` on your project's `<file>`.
Some advice to be more efficient: if the changes on a file concern a file that you never customize, you can simply copy the new file from `CONST_create_template` (`cp CONST_create_template/<file> <file>`).You can furthermore add this file to the `unmanaged_files` section of the `project.yaml` file, to avoid its contents appearing in the diff file for the next upgrade.
Note that you can also apply them using: git apply --3way create.diff
To continue, type:
./upgrade 2.9 11
4 changes: 4 additions & 0 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ env:

jobs:
main:
<<<<<<< ours
=======
runs-on: ubuntu-24.04
>>>>>>> theirs
name: Continuous integration
runs-on: ubuntu-22.04
timeout-minutes: 20
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/rebuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ env:

jobs:
rebuild:
<<<<<<< ours
=======
runs-on: ubuntu-24.04
>>>>>>> theirs
name: Rebuild
runs-on: ubuntu-22.04
timeout-minutes: 10
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update_l10n.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
l10n:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
name: Update l10n cron job
timeout-minutes: 10

Expand Down
67 changes: 67 additions & 0 deletions .upgrade.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
# The list (by include, exclude) of default files that will not be overwritten by the upgrade.
# That that can be extended with managed_files or reduced with unmanaged_files from the
# project.yaml file in the project root directory.
default_project_file:
include:
- geoportal/setup\.py
- geoportal/vars\.yaml
- geoportal/Makefile
- geoportal/geomapfish_geoportal/__init__\.py
- geoportal/geomapfish_geoportal/templates/.*
- geoportal/geomapfish_geoportal/locale/.*
- geoportal/geomapfish_geoportal/static/.*
- geoportal/geomapfish_geoportal/static-ngeo/.*
- print/print-apps/.*
- mapserver/.*
- tilegeneration/config\.yaml\.tmpl
- project\.yaml
- docker-compose\.yaml
- env\.project
- README\.rst
- \.github/workflows/main\.yaml
- \.github/workflows/rebuild\.yaml
exclude:
- mapserver/demo\.map\.tmpl
- geoportal/geomapfish_geoportal/static-ngeo/js/apps/image/favicon\.ico

# Files ignored when creating the diff files => will just be left untouched.
no_diff:
- .*\.po
- CONST_.+
- .*/CONST_.+

# Files that will be present in the CONST_create_template but will not be considered in the upgrade.
# Used to provide the alt applications => does not disturb the user during upgrade.
extra:
- geoportal/geomapfish_geoportal/static-ngeo/js/apps/mobile_alt\.html\.ejs
- geoportal/geomapfish_geoportal/static-ngeo/js/apps/oeedit\.html\.ejs
- geoportal/geomapfish_geoportal/static-ngeo/js/apps/Controllermobile_alt\.js
- geoportal/geomapfish_geoportal/static-ngeo/js/apps/Controlleroeedit\.js
- geoportal/geomapfish_geoportal/static-ngeo/js/apps/sass/mobile_alt\.scss
- geoportal/geomapfish_geoportal/static-ngeo/js/apps/sass/vars_mobile_alt\.scss
- geoportal/geomapfish_geoportal/static-ngeo/js/apps/sass/oeedit\.scss
- geoportal/geomapfish_geoportal/static-ngeo/js/apps/sass/vars_oeedit\.scss
- geoportal/interfaces/desktop_alt\.html\.mako
- geoportal/geomapfish_geoportal/static/images/background-layer-button\.png
- tests/test_testapp.py

# Automated file system operations:
# Remove some files or directories:
# - action: remove
# paths:
# - <one file or directory>
# Move a file:
# - action: move
# from: <src file>
# to: <dst file>
upgrade_files:
- action: remove
paths:
- geoportal/tools/extract-messages.js
- action: move
from: geoportal/lingua-server.cfg
to: geoportal/lingva-server.cfg
- action: move
from: geoportal/lingua-client.cfg
to: geoportal/lingva-client.cfg
2 changes: 1 addition & 1 deletion CONST_create_template/.github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:

jobs:
main:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
name: Continuous integration
timeout-minutes: 10

Expand Down
2 changes: 1 addition & 1 deletion CONST_create_template/.github/workflows/rebuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ env:

jobs:
rebuild:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
name: Rebuild
timeout-minutes: 10

Expand Down
2 changes: 1 addition & 1 deletion CONST_create_template/.github/workflows/update_l10n.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
l10n:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
name: Update l10n cron job
timeout-minutes: 10

Expand Down
2 changes: 1 addition & 1 deletion CONST_create_template/ci/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
c2cciutils[checks,publish]==1.6.22
c2cciutils[checks,publish]==1.6.23
pre-commit==3.8.0
2 changes: 1 addition & 1 deletion ci/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
c2cciutils[checks,publish]==1.6.22
c2cciutils[checks,publish]==1.6.23
pre-commit==3.8.0
39 changes: 39 additions & 0 deletions create.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
index ee8444e..415de6d 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yaml
@@ -11,7 +11,7 @@ on:

jobs:
main:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
name: Continuous integration
timeout-minutes: 10

diff --git a/.github/workflows/rebuild.yaml b/.github/workflows/rebuild.yaml
index cd71fd1..963d0ad 100644
--- a/.github/workflows/rebuild.yaml
+++ b/.github/workflows/rebuild.yaml
@@ -14,7 +14,7 @@ env:

jobs:
rebuild:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
name: Rebuild
timeout-minutes: 10

diff --git a/.github/workflows/update_l10n.yaml b/.github/workflows/update_l10n.yaml
index 966a3e0..1e0e99c 100644
--- a/.github/workflows/update_l10n.yaml
+++ b/.github/workflows/update_l10n.yaml
@@ -7,7 +7,7 @@ on:

jobs:
l10n:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
name: Update l10n cron job
timeout-minutes: 10

143 changes: 143 additions & 0 deletions upgrade
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
#!/usr/bin/env python3

# Copyright (c) 2019-2023, Camptocamp SA
# All rights reserved.

# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:

# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.

# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# The views and conclusions contained in the software and documentation are those
# of the authors and should not be interpreted as representing official policies,
# either expressed or implied, of the FreeBSD Project.


import argparse
import os
import platform
import re
import subprocess
import sys

parser = argparse.ArgumentParser(description="Upgrade the project")
parser.add_argument(
"--debug", help="Path to c2cgeoportal source folder to be able to debug the upgrade procedure"
)
parser.add_argument("version", help="the version to upgrade to (master or x.y.z)")
parser.add_argument("step", nargs="?", help="the step to run")
parser_finalize = argparse.ArgumentParser(description="Upgrade the project", add_help=False)
parser_finalize.add_argument("--finalize", action="store_true", help="finalize the upgrade")
parser_finalize.add_argument("--help", action="help", help="show this help message and exit")
parser_finalize.add_argument("build_arg", nargs="*", help="build arguments")

if len(sys.argv) >= 2 and sys.argv[1] == "--finalize":
args = parser_finalize.parse_args()

if platform.system() == "Windows":
code = subprocess.call(["python", "build"] + args.build_arg)
else:
code = subprocess.call(["./build"] + args.build_arg)
if code != 0:
sys.exit(code)

subprocess.call(["docker", "compose", "down", "--remove-orphans"])
subprocess.call(
["docker", "compose", "pull", "--ignore-pull-failures"],
env={**os.environ, "DOCKER_TAG": "unexisting"},
)
subprocess.check_call(["docker", "compose", "up", "-d"])
subprocess.check_call(
[
"docker",
"compose",
"exec",
"geoportal",
"alembic",
"--name=main",
"--config=alembic.ini",
"upgrade",
"head",
]
)

else:
args = parser.parse_args()

c2cupgrade_args = ["--step", args.step] if args.step is not None else []

if os.environ.get("CI") != "true" and args.step is None:
major_version = args.version
match = re.match(r"^([0-9]+\.[0-9]+)\.[0-9]+$", args.version)
if match is not None:
major_version = match.group(1)
match = re.match(r"^([0-9]+\.[0-9]+)\.[0-9a-z]+\.[0-9]+$", args.version)
if match is not None:
major_version = match.group(1)
if not args.debug:
subprocess.check_call(
[
"docker",
"pull",
f"camptocamp/geomapfish:{major_version}",
]
)
subprocess.check_call(["docker", "pull", f"camptocamp/geomapfish-tools:{args.version}"])
subprocess.check_call(
[
"docker",
"pull",
f"camptocamp/geomapfish-config:{major_version}",
]
)

debug_volumes = (
[
"--volume={debug}/geoportal/c2cgeoportal_geoportal/scripts/c2cupgrade.py:".format(
debug=args.debug
),
"/opt/c2cgeoportal/geoportal/c2cgeoportal_geoportal/scripts/c2cupgrade.py",
]
if args.debug
else []
)

win = platform.system() == "Windows"
sys.exit(
subprocess.call(
[
"docker",
"run",
"--rm",
"--env=CI",
f"--volume={os.getcwd()}:/src",
]
+ debug_volumes
+ [
f"camptocamp/geomapfish-tools:{args.version}",
"run-git",
subprocess.check_output(["git", "config", "--get", "user.name"]).decode().strip(),
subprocess.check_output(["git", "config", "--get", "user.email"]).decode().strip(),
"" if win else subprocess.check_output(["id", "-u"]).decode().strip(),
"" if win else subprocess.check_output(["id", "-g"]).decode().strip(),
"/src",
"c2cupgrade",
]
+ c2cupgrade_args
)
)

0 comments on commit 4e1d76a

Please sign in to comment.