Skip to content
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

Migrate away from Jenkins #91

Closed
2 tasks done
barmac opened this issue Jun 28, 2021 · 6 comments · Fixed by #101
Closed
2 tasks done

Migrate away from Jenkins #91

barmac opened this issue Jun 28, 2021 · 6 comments · Fixed by #101
Assignees

Comments

@barmac
Copy link
Member

barmac commented Jun 28, 2021

What should we do?

Why should we do it?

Jenkins pipeline is decommissioned.

@barmac barmac self-assigned this Jun 28, 2021
@barmac barmac added the in progress Currently worked on label Jun 28, 2021
barmac added a commit that referenced this issue Jun 28, 2021
This makes it possible to use Heroku as the hosting platform.

Related to #91
nikku pushed a commit that referenced this issue Jun 30, 2021
This makes it possible to use Heroku as the hosting platform.

Related to #91
barmac added a commit that referenced this issue Jun 30, 2021
This makes it possible to use Heroku as the hosting platform.

Related to #91
@barmac barmac changed the title Migrate to Heroku Migrate away from Jenkins Jul 1, 2021
@barmac
Copy link
Member Author

barmac commented Jul 1, 2021

Hey, since there are some blockers regarding migration to Heroku, I've prepared the document below which should help us to decide how to proceed:

bpmn.io migration

Current Status

There is a bpmn-io-website pipeline on Heroku. Two apps are connected to the pipeline with auto-deployment
from master and live branches for the staging and the production environment respectively.

The staging version of the website is connected to the stage.bpmn.io domain and it works correctly.

bpmn.io is still hosted by Camunda webserver which is handled by the old Jenkins pipeline.

Problem

When I reached out to Tim Gramling (@Gramling on Slack) to change the bpmn.io domain settings
to point to the Heroku-hosted production website, he shared with me that it cannot be done.

It occurs that bpmn.io domain cannot point to the Heroku server. Heroku handles custom domains by
pointing the domain to a DNS target in a form of nameless-cat-bvwfnutntrlk4p1ak2uz5vcd.herokudns.com.

To point to such a domain from the root domain, we would have to use a CNAME entry on the domain.
However, we cannot have a CNAME entry on bpmn.io domain as it already has two TXT entries. One cannot
have both CNAME and TXT entries on a domain. Also, as Tim shared with me, we cannot use ALIAS entries
because Camunda DNS server (Bind) does not allow this.

What we can have on bpmn.io domain is an A entry. This, however, has to point to a static IP which
is not provided by Heroku.

Solutions

I can see two feasible solutions.

Choose different hosting

As we cannot achieve what we want with Heroku, we can move on to another hosting provider which
supports A entries. I've found that GitHub Pages and Netlify could be options for us.

GitHub Pages

GitHub Pages supports A entries.
Here we can have only a single website and the service is free. For the staging environment,
we would have to use the existing Heroku website linked with stage.bpmn.io

Netlify

Netlify supports A entries as well.
It is a paid service ($19/month per member) which provides more features than GitHub Pages
with review deployments, serverless functions, and monitoring among them.
We could use Netlify as a single service provider so we would not have to maintain the Heroku website.

Regarding the cost, Heroku is $14/month for two apps. If we use a shared Netlify account, the difference is not big.

Use a subdomain

A solution suggested by Tim is to use a www.bpmn.io subdomain which can use CNAME entry. This would
allow us to use Heroku. However, bpmn.io domain would have to redirect users to www.bpmn.io

My Assessment

Let's use Netlify as this allows us to keep the same domain as before while also providing a full-fletched
environment for tests and review.

@barmac barmac added backlog Queued in backlog and removed in progress Currently worked on labels Jul 5, 2021
@barmac
Copy link
Member Author

barmac commented Jul 5, 2021

Moved to backlog due to pending decision on the hosting. Let's get back to it after my vacation. @nikku and I will discuss it on 16 August.

nikku pushed a commit that referenced this issue Jul 14, 2021
This makes it possible to use Heroku as the hosting platform.

Related to #91
@nikku nikku mentioned this issue Jul 14, 2021
@barmac
Copy link
Member Author

barmac commented Aug 16, 2021

Nico and I just had a meeting regarding this issue. We have decided that we will try to re-use the old server and use GitHub Actions to build and deploy the website. I will reach out to IT (Tim) to set this up.

If it's not an option, only then we will go for Netlify.

@barmac
Copy link
Member Author

barmac commented Aug 16, 2021

I reached out today to Tim and he added bpmn.io server secrets to the repository. The next step will be to prepare GitHub actions to build and deploy the website using the provided credentials.

barmac added a commit that referenced this issue Aug 20, 2021
@bpmn-io-tasks bpmn-io-tasks bot added needs review Review pending and removed backlog Queued in backlog labels Aug 20, 2021
@fake-join fake-join bot closed this as completed in #101 Aug 23, 2021
@bpmn-io-tasks bpmn-io-tasks bot removed the needs review Review pending label Aug 23, 2021
fake-join bot pushed a commit that referenced this issue Aug 23, 2021
@barmac
Copy link
Member Author

barmac commented Aug 23, 2021

I've disabled the staging job after GH Action worked correctly.

fake-join bot pushed a commit that referenced this issue Aug 23, 2021
@barmac
Copy link
Member Author

barmac commented Aug 23, 2021

The live job is also disabled. Now GitHub Actions handle both staging and production deployments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant