mirror of
https://github.com/tachiyomiorg/website.git
synced 2024-12-21 07:31:58 +01:00
Add 'Signing and releasing' page
Work done soley by @alessandrojean Co-Authored-By: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
This commit is contained in:
parent
0118fb868d
commit
764e524074
@ -112,6 +112,10 @@ function defaultSidebar(): DefaultTheme.SidebarItem[] {
|
||||
text: 'Compiling and running',
|
||||
link: '/docs/guides/creating-extensions/compiling',
|
||||
},
|
||||
{
|
||||
text: 'Signing and releasing',
|
||||
link: '/docs/guides/creating-extensions/signing',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
97
website/src/docs/guides/creating-extensions/signing.md
Normal file
97
website/src/docs/guides/creating-extensions/signing.md
Normal file
@ -0,0 +1,97 @@
|
||||
---
|
||||
title: Signing and releasing
|
||||
titleTemplate: Creating extensions - Guides
|
||||
description: Signing and releasing the repository
|
||||
---
|
||||
|
||||
# Signing and releasing
|
||||
|
||||
To setup the GitHub actions to automatically release new extensions on every push, you will need to setup a signing key.
|
||||
To do that, you need to create one first.
|
||||
|
||||
## Creating a signing key
|
||||
|
||||
The following steps will guide you into creating a key.
|
||||
|
||||
1. On Android Studio, open **Build → Generate Signed Bundle or APK**. Under the new screen, choose the **APK** option and click **Next**.
|
||||
2. Click on **Create new…** under the **Key store path** field.
|
||||
3. Fill up the required fields in the **New Key Store** window.
|
||||
|
||||
The fields under the Certificate section are optional, but you will need to fill at least one of them.
|
||||
4. Click **OK** and it will create the signing key at the path choosen at the **Key store path** field.
|
||||
5. You can close the **Generate Signed Bundle or APK** window as it will not be used anymore.
|
||||
|
||||
::: tip
|
||||
Make sure to remember the given values of **Password**, **Alias** and **Key Password** as they will be needed later.
|
||||
:::
|
||||
|
||||
::: danger Caution
|
||||
Make sure to not use any special characters such as `@` or `!` under any of the passwords, otherwise it will lead to the generation of broken keys.
|
||||
:::
|
||||
|
||||
## Configuring the GitHub actions
|
||||
|
||||
This section will guide you into setting up the secrets needed for the build and also some options you need to change under the repository settings.
|
||||
|
||||
### Adding the secrets
|
||||
|
||||
All secrets depends on a generated signed key which was described in the previous section.
|
||||
|
||||
1. In your repository on GitHub, open the **Settings** tab and navigate to **Secrets and variables → Actions**.
|
||||
2. Under the **Secrets** tab, you will need to create four secrets by following the table below.
|
||||
|
||||
- `ALIAS`: The value of the key alias;
|
||||
- `KEY_PASSWORD`: The main password of the key;
|
||||
- `KEY_STORE_PASSWORD`: The password of the key store;
|
||||
- `SIGNING_KEY`: Base-64 representation of the key `.jks` file content;
|
||||
|
||||
#### Creating the Base-64 representation
|
||||
|
||||
Under a terminal window in the path of the key, you can use the following command to convert the key and copy the value.
|
||||
|
||||
```bash
|
||||
$ base64 signingkey.jks | tr -d \\n | xclip -selection c
|
||||
```
|
||||
|
||||
The previous command depends on `xclip` installed to copy the contents of the conversion to the clipboard, but you can replace that last part with any other similar tool.
|
||||
|
||||
:::warning Caution
|
||||
Make sure your copied value doesn't have any trailing whitespace while pasting the value under GitHub.
|
||||
:::
|
||||
|
||||
### Enabling Actions read and write permission
|
||||
|
||||
The workflows will need write permissions to commit to the `repo` branch.
|
||||
|
||||
1. Under the repository Settings on GitHub, navigate to **Actions → General**.
|
||||
2. Choose the **Read and write permissions** option on the **Workflow permissions** section and click **Save**.
|
||||
|
||||
### Creating an empty `repo` branch
|
||||
|
||||
If your repository doesn't already have a `repo` branch, you will need to create it.
|
||||
|
||||
To create you can follow the standard flow of creating a `branch` named `repo` and then proceed by deleting all repository files (except the `.git`) folder and then commiting and pushing to GitHub.
|
||||
|
||||
### Changing the checks in the workflow
|
||||
|
||||
If your repository is forked or cloned from the official extensions repository, you will need to change two checks under the `.github/workflows/build_push.yml` file.
|
||||
|
||||
```yml
|
||||
- name: Upload APKs
|
||||
uses: actions/upload-artifact@v4
|
||||
if: "github.repository == 'tachiyomiorg/extensions'" # [!code --]
|
||||
if: "github.repository == '[user]/[repository]'" # [!code ++]
|
||||
```
|
||||
|
||||
```yml
|
||||
publish_repo:
|
||||
name: Publish repo
|
||||
needs:
|
||||
- build_individual
|
||||
if: "github.repository == 'tachiyomiorg/extensions'" # [!code --]
|
||||
if: "github.repository == '[user]/[repository]'" # [!code ++]
|
||||
```
|
||||
|
||||
### Finishing up
|
||||
|
||||
If all is configured correctly, GitHub should run the workflow whenever there's a new commit pushed to the `main` branch which will build the extensions APKs and release it through the `repo` branch by creating the needed structure.
|
Loading…
Reference in New Issue
Block a user