Merge branch 'backport/1.0-branch-name-change' into 'master'
Backport branch name changes to 1.0 See merge request pleroma/pleroma!1842
This commit is contained in:
commit
f5305d2815
@ -86,7 +86,7 @@ docs-deploy:
|
||||
stage: deploy
|
||||
image: alpine:3.9
|
||||
only:
|
||||
- master@pleroma/pleroma
|
||||
- stable@pleroma/pleroma
|
||||
- develop@pleroma/pleroma
|
||||
before_script:
|
||||
- apk update && apk add openssh-client rsync
|
||||
@ -148,8 +148,10 @@ amd64:
|
||||
# TODO: Replace with upstream image when 1.9.0 comes out
|
||||
image: rinpatch/elixir:1.9.0-rc.0
|
||||
only: &release-only
|
||||
- master@pleroma/pleroma
|
||||
- stable@pleroma/pleroma
|
||||
- develop@pleroma/pleroma
|
||||
- /^maint/.*$/@pleroma/pleroma
|
||||
- /^release/.*$/@pleroma/pleroma
|
||||
artifacts: &release-artifacts
|
||||
name: "pleroma-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
|
||||
paths:
|
||||
|
@ -87,7 +87,7 @@ sudo adduser -S -s /bin/false -h /opt/pleroma -H pleroma
|
||||
```shell
|
||||
sudo mkdir -p /opt/pleroma
|
||||
sudo chown -R pleroma:pleroma /opt/pleroma
|
||||
sudo -Hu pleroma git clone -b master https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
||||
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
||||
```
|
||||
|
||||
* Change to the new directory:
|
||||
|
@ -66,7 +66,7 @@ sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
|
||||
```shell
|
||||
sudo mkdir -p /opt/pleroma
|
||||
sudo chown -R pleroma:pleroma /opt/pleroma
|
||||
sudo -Hu pleroma git clone -b master https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
||||
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
||||
```
|
||||
|
||||
* Change to the new directory:
|
||||
|
@ -143,7 +143,7 @@ sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
|
||||
```shell
|
||||
sudo mkdir -p /opt/pleroma
|
||||
sudo chown -R pleroma:pleroma /opt/pleroma
|
||||
sudo -Hu pleroma git clone -b master https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
||||
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
||||
```
|
||||
|
||||
* Change to the new directory:
|
||||
|
@ -68,7 +68,7 @@ sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
|
||||
```shell
|
||||
sudo mkdir -p /opt/pleroma
|
||||
sudo chown -R pleroma:pleroma /opt/pleroma
|
||||
sudo -Hu pleroma git clone -b master https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
||||
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
||||
```
|
||||
|
||||
* Change to the new directory:
|
||||
|
@ -69,7 +69,9 @@ cd ~
|
||||
|
||||
* Gitリポジトリをクローンします。
|
||||
```
|
||||
git clone -b master https://git.pleroma.social/pleroma/pleroma
|
||||
sudo mkdir -p /opt/pleroma
|
||||
sudo chown -R pleroma:pleroma /opt/pleroma
|
||||
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
||||
```
|
||||
|
||||
* 新しいディレクトリに移動します。
|
||||
|
@ -106,7 +106,7 @@ It is highly recommended you use your own fork for the `https://path/to/repo` pa
|
||||
|
||||
```shell
|
||||
pleroma$ cd ~
|
||||
pleroma$ git clone -b master https://path/to/repo
|
||||
pleroma$ git clone -b stable https://path/to/repo
|
||||
```
|
||||
|
||||
* Change to the new directory:
|
||||
|
@ -96,9 +96,9 @@ rm -r ~pleroma/*
|
||||
export FLAVOUR="arm64-musl"
|
||||
|
||||
# Clone the release build into a temporary directory and unpack it
|
||||
# Replace `master` with `develop` if you want to run the develop branch
|
||||
# Replace `stable` with `unstable` if you want to run the unstable branch
|
||||
su pleroma -s $SHELL -lc "
|
||||
curl 'https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/master/download?job=$FLAVOUR' -o /tmp/pleroma.zip
|
||||
curl 'https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=$FLAVOUR' -o /tmp/pleroma.zip
|
||||
unzip /tmp/pleroma.zip -d /tmp/
|
||||
"
|
||||
|
||||
|
@ -58,7 +58,7 @@ Clone the repository:
|
||||
|
||||
```
|
||||
$ cd /home/pleroma
|
||||
$ git clone -b master https://git.pleroma.social/pleroma/pleroma.git
|
||||
$ git clone -b stable https://git.pleroma.social/pleroma/pleroma.git
|
||||
```
|
||||
|
||||
Configure Pleroma. Note that you need a domain name at this point:
|
||||
|
@ -29,7 +29,7 @@ This creates a "pleroma" login class and sets higher values than default for dat
|
||||
Create the \_pleroma user, assign it the pleroma login class and create its home directory (/home/\_pleroma/): `useradd -m -L pleroma _pleroma`
|
||||
|
||||
#### Clone pleroma's directory
|
||||
Enter a shell as the \_pleroma user. As root, run `su _pleroma -;cd`. Then clone the repository with `git clone -b master https://git.pleroma.social/pleroma/pleroma.git`. Pleroma is now installed in /home/\_pleroma/pleroma/, it will be configured and started at the end of this guide.
|
||||
Enter a shell as the \_pleroma user. As root, run `su _pleroma -;cd`. Then clone the repository with `git clone -b stable https://git.pleroma.social/pleroma/pleroma.git`. Pleroma is now installed in /home/\_pleroma/pleroma/, it will be configured and started at the end of this guide.
|
||||
|
||||
#### Postgresql
|
||||
Start a shell as the \_postgresql user (as root run `su _postgresql -` then run the `initdb` command to initialize postgresql:
|
||||
|
@ -44,7 +44,7 @@ Vaihda pleroma-käyttäjään ja mene kotihakemistoosi:
|
||||
|
||||
Lataa pleroman lähdekoodi:
|
||||
|
||||
`$ git clone -b master https://git.pleroma.social/pleroma/pleroma.git`
|
||||
`$ git clone -b stable https://git.pleroma.social/pleroma/pleroma.git`
|
||||
|
||||
`$ cd pleroma`
|
||||
|
||||
|
@ -80,7 +80,7 @@ export FLAVOUR="arm64-musl"
|
||||
|
||||
# Clone the release build into a temporary directory and unpack it
|
||||
su pleroma -s $SHELL -lc "
|
||||
curl 'https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/master/download?job=$FLAVOUR' -o /tmp/pleroma.zip
|
||||
curl 'https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=$FLAVOUR' -o /tmp/pleroma.zip
|
||||
unzip /tmp/pleroma.zip -d /tmp/
|
||||
"
|
||||
|
||||
|
5
mix.exs
5
mix.exs
@ -209,7 +209,10 @@ defmodule Pleroma.Mixfile do
|
||||
with {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]),
|
||||
branch_name <- String.trim(branch_name),
|
||||
branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name,
|
||||
true <- branch_name not in ["master", "HEAD"] do
|
||||
true <-
|
||||
!Enum.all?(["master", "HEAD", "release/", "stable"], fn name ->
|
||||
String.starts_with?(name, branch_name)
|
||||
end) do
|
||||
branch_name =
|
||||
branch_name
|
||||
|> String.trim()
|
||||
|
@ -35,31 +35,62 @@ detect_branch() {
|
||||
if [ "$branch" = "develop" ]; then
|
||||
echo "develop"
|
||||
elif [ "$branch" = "" ]; then
|
||||
echo "master"
|
||||
echo "stable"
|
||||
else
|
||||
# Note: branch name in version is of SemVer format and may only contain [0-9a-zA-Z-] symbols —
|
||||
# if supporting releases for more branches, need to ensure they contain only these symbols.
|
||||
echo "Releases are built only for master and develop branches" >&2
|
||||
# Note: branch name in version is of SemVer format and may only contain [0-9a-zA-Z-] symbols —
|
||||
# if supporting releases for more branches, need to ensure they contain only these symbols.
|
||||
echo "Can't detect the branch automatically, please specify it by using the --branch option." >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
update() {
|
||||
set -e
|
||||
NO_RM=false
|
||||
|
||||
while echo "$1" | grep "^-" >/dev/null; do
|
||||
case "$1" in
|
||||
--zip-url)
|
||||
FULL_URI="$2"
|
||||
shift 2
|
||||
;;
|
||||
--no-rm)
|
||||
NO_RM=true
|
||||
shift
|
||||
;;
|
||||
--flavour)
|
||||
FLAVOUR="$2"
|
||||
shift 2
|
||||
;;
|
||||
--branch)
|
||||
BRANCH="$2"
|
||||
shift 2
|
||||
;;
|
||||
--tmp-dir)
|
||||
TMP_DIR="$2"
|
||||
shift 2
|
||||
;;
|
||||
-*)
|
||||
echo "invalid option: $1" 1>&2
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
RELEASE_ROOT=$(dirname "$SCRIPTPATH")
|
||||
uri="${PLEROMA_CTL_URI:-https://git.pleroma.social}"
|
||||
project_id="${PLEROMA_CTL_PROJECT_ID:-2}"
|
||||
project_branch="$(detect_branch)"
|
||||
flavour="${PLEROMA_CTL_FLAVOUR:-$(detect_flavour)}"
|
||||
echo "Detected flavour: $flavour"
|
||||
tmp="${PLEROMA_CTL_TMP_DIR:-/tmp}"
|
||||
uri="https://git.pleroma.social"
|
||||
project_id="2"
|
||||
project_branch="${BRANCH:-$(detect_branch)}"
|
||||
flavour="${FLAVOUR:-$(detect_flavour)}"
|
||||
tmp="${TMP_DIR:-/tmp}"
|
||||
artifact="$tmp/pleroma.zip"
|
||||
full_uri="${uri}/api/v4/projects/${project_id}/jobs/artifacts/${project_branch}/download?job=${flavour}"
|
||||
full_uri="${FULL_URI:-${uri}/api/v4/projects/${project_id}/jobs/artifacts/${project_branch}/download?job=${flavour}}"
|
||||
echo "Downloading the artifact from ${full_uri} to ${artifact}"
|
||||
curl "$full_uri" -o "${artifact}"
|
||||
echo "Unpacking ${artifact} to ${tmp}"
|
||||
unzip -q "$artifact" -d "$tmp"
|
||||
echo "Copying files over to $RELEASE_ROOT"
|
||||
if [ "$1" != "--no-rm" ]; then
|
||||
if [ "$NO_RM" = false ]; then
|
||||
echo "Removing files from the previous release"
|
||||
rm -r "${RELEASE_ROOT:-?}"/*
|
||||
fi
|
||||
cp -rf "$tmp/release"/* "$RELEASE_ROOT"
|
||||
@ -86,36 +117,41 @@ if [ -z "$1" ] || [ "$1" = "help" ]; then
|
||||
Rollback database migrations (needs to be done before downgrading)
|
||||
|
||||
update [OPTIONS]
|
||||
Update the instance using the latest CI artifact for the current branch.
|
||||
|
||||
The only supported option is --no-rm, when set the script won't delete the whole directory, but
|
||||
just force copy over files from the new release. This wastes more space, but may be useful if
|
||||
some files are stored inside of the release directories (although you really shouldn't store them
|
||||
there), or if you want to be able to quickly revert a broken update.
|
||||
|
||||
The script will try to detect your architecture and ABI and set a flavour automatically,
|
||||
but if it is wrong, you can overwrite it by setting PLEROMA_CTL_FLAVOUR to the desired flavour.
|
||||
|
||||
By default the artifact will be downloaded from https://git.pleroma.social for pleroma/pleroma (project id: 2)
|
||||
to /tmp/, you can overwrite these settings by setting PLEROMA_CTL_URI, PLEROMA_CTL_PROJECT_ID and PLEROMA_CTL_TMP_DIR
|
||||
respectively.
|
||||
Update the instance.
|
||||
|
||||
Options:
|
||||
--branch Update to a specified branch, instead of the latest version of the current one.
|
||||
--flavour Update to a specified flavour (CPU architecture+libc), instead of the current one.
|
||||
--zip-url Get the release from a specified url. If set, renders the previous 2 options inactive.
|
||||
--no-rm Do not erase previous release's files.
|
||||
--tmp-dir Download the temporary files to a specified directory.
|
||||
|
||||
and any mix tasks under Pleroma namespace, for example \`mix pleroma.user COMMAND\` is
|
||||
equivalent to \`$(basename "$0") user COMMAND\`
|
||||
|
||||
By default pleroma_ctl will try calling into a running instance to execute non migration-related commands,
|
||||
if for some reason this is undesired, set PLEROMA_CTL_RPC_DISABLED environment variable
|
||||
if for some reason this is undesired, set PLEROMA_CTL_RPC_DISABLED environment variable.
|
||||
|
||||
"
|
||||
else
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
SCRIPTPATH=$(dirname "$SCRIPT")
|
||||
|
||||
if [ "$1" = "update" ]; then
|
||||
update "$2"
|
||||
elif [ "$1" = "migrate" ] || [ "$1" = "rollback" ] || [ "$1" = "create" ] || [ "$1 $2" = "instance gen" ] || [ -n "$PLEROMA_CTL_RPC_DISABLED" ]; then
|
||||
"$SCRIPTPATH"/pleroma eval 'Pleroma.ReleaseTasks.run("'"$*"'")'
|
||||
FULL_ARGS="$*"
|
||||
|
||||
ACTION="$1"
|
||||
shift
|
||||
|
||||
if [ "$(echo \"$1\" | grep \"^-\" >/dev/null)" = false ]; then
|
||||
SUBACTION="$1"
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ "$ACTION" = "update" ]; then
|
||||
update "$@"
|
||||
elif [ "$ACTION" = "migrate" ] || [ "$ACTION" = "rollback" ] || [ "$ACTION" = "create" ] || [ "$ACTION $SUBACTION" = "instance gen" ] || [ "$PLEROMA_CTL_RPC_DISABLED" = true ]; then
|
||||
"$SCRIPTPATH"/pleroma eval 'Pleroma.ReleaseTasks.run("'"$FULL_ARGS"'")'
|
||||
else
|
||||
"$SCRIPTPATH"/pleroma rpc 'Pleroma.ReleaseTasks.run("'"$*"'")'
|
||||
"$SCRIPTPATH"/pleroma rpc 'Pleroma.ReleaseTasks.run("'"$FULL_ARGS"'")'
|
||||
fi
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user