This commit is contained in:
Matthew Penner 2022-12-01 12:17:33 -07:00
parent 10d858d0b9
commit 45c597ab3c
No known key found for this signature in database
6 changed files with 35 additions and 195 deletions

View File

@ -1,19 +1,32 @@
name: GitHub pages
on: push
name: GitHub Pages
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
deploy:
name: Deploy
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@master
- name: Install dependencies
run: yarn
- name: Build
run: yarn run build
- name: Deploy
if: github.ref == 'refs/heads/master'
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./.vuepress/dist
cname: pterodactyl.io
- name: Checkout
uses: actions/checkout@v3
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build
run: yarn run build
- name: Deploy
if: github.ref == 'refs/heads/master'
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./.vuepress/dist
cname: pterodactyl.io

View File

@ -1,50 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
gkSI5o2kam0QGYUhqg==
=rDb0
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -186,13 +186,6 @@ module.exports = {
'/guides/mounts.md',
],
},
{
title: 'Development & Ops',
collapsable: true,
children: [
'/ops/publish_release.md',
],
},
],
},
},

View File

@ -38,7 +38,8 @@ function findVersionedPaths(paths) {
// https://stackoverflow.com/a/29855282/4430124
function pathJoin(...parts) {
var separator = '/';
var replace = new RegExp(separator + '{1,}', 'g');
const separator = '/';
const replace = new RegExp(separator + '{1,}', 'g');
return parts.join(separator).replace(replace, separator);
}

View File

@ -1,108 +0,0 @@
# Publishing a Release
::: tip
This documentation is specific to the core project team and serves to document how we create, deploy, and announce
releases of this software. It might be an interesting read, but you'll likely never use anything out of this on a
day-to-day basis.
:::
[[toc]]
## Pick a Codename
If this is going to be a major version release `0.X` or `1.X` (not `0.0.X`), you will need to have a codename picked
out for the release. This should be some type of rhyme or otherwise creative name, ideally using some type of Pterodactyl
related species name.
## Create the Release Branch
Releases should be created as their own branch on GitHub, following the GitFlow model. This means you'll need to create
a `release/vX.X.X` branch. Once the branch is created you need to update the version number for the software. For the Panel
this requires editing `config/app.php` and setting the specific `APP_VERSION` _without_ a preceding `v`. For the Daemon,
you need to edit `package.json` and set the `version` field, again _without_ a preceding `v`.
Once you've created the branch and update the relevant file publish the branch to GitHub to begin the next steps.
## Tag a Release
Once the branch is pushed up you need to tag a release and then configure it on GitHub. To do so, run the command below
setting the version correctly. This will create a tag for `v0.6.0` on the `release/v0.6.0` branch and sign it using your
GPG key.
::: warning Sign Your Releases
All releases must be made with a GPG signed tag. Do not create a tag without signing it.
:::
``` bash
git tag -asm "v0.6.0"
git push origin v0.6.0
```
### Update the Release on GitHub
Once you've created and pushed up the tag you need to then go to the GitHub releases, find the most recent tag, and create
a nice release from it. The title should be `v1.2.3 (Codename)`, and the content should be from the Changelog for that release.
All minor version releases should use the same codename as the major release version.
## Generate Signatures & Hashes
Once you've created the release on GitHub, view it and select the option to download the `.tar.gz` archive of the release.
Once downloaded, rename it to `panel.tar.gz` or `daemon.tar.gz`.
``` bash
mv panel-v1.2.3.tar.gz panel.tar.gz
```
### Create Checksum
Then, create the SHA 256 checksum and write it to a file which will be uploaded to the release on GitHub.
``` bash
shasum -a 256 panel.tar.gz > checksum.txt
# Dump the output for easy pasting into the release
cat checksum.txt
```
### GPG Sign Release
Finally, create a GPG-signed file to verify the integrity of the release. This must be created using Pterodactyl's key,
so chances are that only Dane will be doing this part.
``` bash
gpg --detach-sig --output panel.asc panel.tar.gz
```
### Attach to Release
Finally, upload `panel.tar.gz`, `checksum.txt`, and `panel.asc` to the release as attachments. This will allow all of our
defined links to continue working. In addition, add a section to the release titled `#### SHA256 Checksum` with the content
of the checksum for people to verify with.
## Update Documentation
After the release is created and ready to go, update the relevant documentation to ensure it will be the version people
install or upgrade to. You should also make sure all of the documentation for installing or upgrading is squared away and
ready to go.
## Update CDN
Dane will need to update the CDN `releases.json` file to point to the most recent version of the Panel and Daemon so that
notifications show up on the Daemon and Panel encouraging people to update.
## Make Discord Announcement
The last step is to make an announcement on Discord letting `@everyone` know that a new release is available, and encouraging
them to update. Include relevant links to stem off the inevitable flood of "how 2 update" questions that will follow.
## Example Process
The entire process, command wise, will probably look something like below:
``` bash
git checkout -b release/v1.2.3
# make file edits
git push -u origin release/v1.2.3
git tag -as v1.2.3 -m "v1.2.3"
git push origin v1.2.3
# edit release on GitHub, download files
mv panel-1.2.3.tar.gz panel.tar.gz
shasum -a 256 panel.tar.gz > checksum.txt
cat checksum.txt
gpg --detach-sig --output panel.asc panel.tar.gz
# attach to release
```

View File

@ -5,7 +5,7 @@
## Core Project Team
| Name | Discord Name | Primary Role |
| --------------------------------------------- | -------------------- | ----------------------------------- |
|-----------------------------------------------|----------------------|-------------------------------------|
| [Dane Everitt](https://daneeveritt.com/) | `Tactical Fish#8008` | Founder & Former Project Maintainer |
| [Matthew Penner](https://matthewp.io/) | `matthewp#0001` | Project Maintainer |
| Stepan Fedotov | `Trixter#0001` | WISP & WHMCS Module Maintainer |
@ -25,7 +25,7 @@ members can be found in our Discord server and are distinguished with a yellow u
The following companies help to fund Pterodactyl's development. [Interested in becoming a sponsor?](https://github.com/sponsors/matthewpi)
| Company | About |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [**WISP**](https://wisp.gg) | Extra features. |
| [**Fragnet**](https://fragnet.net) | Providing low latency, high-end game hosting solutions to gamers, game studios and eSports platforms. |
| [**RocketNode**](https://rocketnode.com/) | Innovative game server hosting combined with a straightforward control panel, affordable prices, and Rocket-Fast support. |
@ -42,12 +42,3 @@ The following companies help to fund Pterodactyl's development. [Interested in b
Pterodactyl® Copyright © 2015 - 2022 Dane Everitt and contributors.
Code released under the [MIT License](https://github.com/pterodactyl/panel/blob/develop/LICENSE.md).
## GPG Signature
Starting with Panel `v0.4.0` all releases are signed with the GPG key below. All releases include a detached key as
well to verify your download against.
Releases also include a SHA256 checksum.
<<< @/.snippets/gpg.txt