This commit includes a Dockerfile for building a test environment for
future CI pipelines. This commit also refactors the GitLab CI pipeline
files by splitting the jobs into different files:
- .gitlab-ci.yml: Global CI pipeline file.
- .gitlab/ci/test-env.gitlab-ci.yml: Jobs to test and publish the
docker image for the test environment.
- .gitlab/ci/playbook.gitlab-ci.yml: Jobs to test and publish the
docker image for the pleroma playbook
- .gitlab/ci/templates/docker.gitlab-ci.yml: Template jobs for
testing and publishing docker images.
Part of dananglin/pleroma-ansible-playbook#17
- Add Dockerfile to install Ansible and the playbook.
- Add Makefile target to build the image.
- Add Makefile target to run the playbook.
- Add the playbook that ansible will run.
- Add .dockerignore to limit the files added to the context.
- Added a pipeline job to test the image build.
- Added a pipeline job to lint the Dockerfile.
This closesdananglin/pleroma-ansible-playbook#13
This commit implements different installation paths when
running the pleroma-main role, depending on whether Pleroma
needs to be installed for the first time or upgraded.
For first time installations the playbook will run through
the normal download and installation process and also executes
the database migration. If Pleroma is already installed then,
by default, the playbook will not re-install Pleroma or re-run
the database migration. If the user wants to update Pleroma to
a newer version then they can re-run the playbook with the
command-line argument '--extra-vars enable_pleroma_upgrade=True'.
This commit also introduces a custom module used to compare the
installed and downloaded semantic versions of Pleroma.
The playbook uses this to see whether the version change is an upgrade,
a downgrade or no version change. If it's an upgrade the playbook
will proceed with the re-installation of Pleroma. If there is no
change then the playbook will skip installation. Finally if
it detects that the user is trying to downgrade Pleroma then it will
fail.
This commit resolvesdananglin/pleroma-ansible-playbook#9 and also
resolvesdananglin/pleroma-ansible-playbook#5