-
Notifications
You must be signed in to change notification settings - Fork 302
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Development
: Add support for new Docker based test servers with GitHub deployment
#6492
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested the Exam Mode with a Test Exam (couldn't get normal exam to work, most likely my fault) and that worked as expected
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested the Exam Mode on the testing server. It works as expected.
At some points the code could be simplified by using GitHub's Environments feature. Right now, the test environments are hardcoded in the pipeline: filter-matrix:
needs: [ get-labels, check-build-status ]
runs-on: ubuntu-latest
strategy:
matrix:
include:
# Commented out environments are not yet available and will be enabled in the future
#- environment: artemis-test2.artemis.cit.tum.de
# label-identifier: artemis-test2
# url: https://artemis-test2.artemis.cit.tum.de
# user: deployment
# hosts: artemis-test2.artemis.cit.tum.de
# folder: /opt/artemis
# host_keys: |
# artemis-test2.artemis.cit.tum.de ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDUqNIPYUJBuItIfGzVu8jtpNWerFoqNq34cPU/+w5biwCrQA/RMIRt0H49ETc4vgc3rN85//FJ9j2x4jGfyS3jxj/ind6PX1QIBjGl09s2TFz53Z8OwcAw9iXJrtKqZGfxr8sbVfboDGa/kyr8E+YUJo+6bPusLQPSAJn8GUGgcNKHQSX7A4sEIeq2uU1RqGKDWJSxyECUxyubfNB6LCZd3ezEP1MPDnvhoF/5cEP4QxeTsVIkwIIAE8oVxNM7Ni8xqkl8sUM//SdzglFsK2gE5eSZ5OpQ5h/Cc3Oo1z7LnwlMwo8fGnhAcoUpDjuKD/2AdIhkyW0B4xUKbKVO94kVSuBUXErYqF4bHByGgjkzR0JTEwk5+shlUjoEA6DBxBO08CudJcTDUhk5+8fRwOzxfSTakr8sOfakgo7W6fBl3P4lHSdsd7VqKINcR3A9QYSXeiEeqliXnTkDSsZw4ux9JyuLle1DHPbTuH8f+vEosdxda+djm3FeijYTe4QS87k=
# artemis-test2.artemis.cit.tum.de ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDRCF0zH3u38zVPNUhJI7zIDsXa3ONiU0GeCv/ybjawkh4alBPnlXtdH0cG1JPtR/Jz/gau92dcqiIFtqdDCDkg=
# artemis-test2.artemis.cit.tum.de ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMV70ACU6GdLtf1MwUklNltC78UoOPsasZruYh0Ord6n
# ... If these values were put into environments this would allow for more flexibility:
An example of deploying with labels and environment can be seen here. It boilds down to using the |
Thanks a lot for your detailed message @fschoenberger! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for implementing this 👍 Changes are looking good to me
General
: Add support for new Docker based test servers with GitHub deploymentDevelopment
: Add support for new Docker based test servers with GitHub deployment
Checklist
General
Motivation and Context
This PR builds upon the work done in #5915.
In that PR we reworked the docker compose setup of Artemis to be production ready, so that it could be used for the test servers.
We want to restructure the test servers so they use Docker for everything and to use GitHub instead of Bamboo for deployments to them. This will make maintenance of them easier an allows for more flexibility.
This PR addresses both issues.
Description
For now this PR adds the ability to deploy to the new test servers 4, 5, and 6. They are available under the URLs:
Note the
cit.tum.de
instead ofin.tum.de
. The old/legacy test servers will remain available underin.tum.de
until the new setup is deemed stable enough.They all use Atlassian-Prelive and MySQL for now, so they are pretty much identical. In the future they will likely be replaced by different setups, once TS1, TS2, and TS3 are moved to the new system.
The deployment works the same as for the old TS5 via GitHub environments and workflows that have to be approved. Instead of having to reserve a test server on Slack you can now use the
lock:artemis-testX
labels. They are set by the workflow and ensure that only one PR is deployed at any given time on one test server. Once you are done testing you have to manually remove this label.List of all changes:
deploy:artemis-testX
)deployment-error
label if any error occursHow the deployment pipeline works:
deployment-error label
Steps for Testing
Testing this PR is obviously tricky. There are two things you can do:
You can also push empty(!) commits to this PR to test edge cases if you want.
Prerequisites:
deploy:artemis-test4
,deploy:artemis-test5
,deploy:artemis-test6
labelsReview Progress
Code Review
Manual Tests
Exam Mode Test
Screenshots
Example error message: