Change readme and workflow.

This commit is contained in:
asdlokj1qpi23
2023-12-21 15:50:13 +08:00
parent d68a2217fe
commit 92db1f1f58
4 changed files with 223 additions and 199 deletions

View File

@@ -62,55 +62,55 @@ jobs:
files: subconverter_linux64.tar.gz files: subconverter_linux64.tar.gz
draft: true draft: true
armv7_build: # armv7_build:
name: Linux armv7 Build # name: Linux armv7 Build
runs-on: [self-hosted, linux, ARM] # runs-on: [self-hosted, linux, ARM]
steps: # steps:
- uses: actions/checkout@v3 # - uses: actions/checkout@v3
- name: Add commit id into version # - name: Add commit id into version
if: ${{ !startsWith(github.ref, 'refs/tags/') }} # if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h # run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
- name: Build # - name: Build
run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:armv7-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh" # run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:armv7-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- name: Upload # - name: Upload
uses: actions/upload-artifact@v3 # uses: actions/upload-artifact@v3
with: # with:
name: subconverter_armv7 # name: subconverter_armv7
path: subconverter/ # path: subconverter/
- name: Package Release # - name: Package Release
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} # if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
run: tar czf subconverter_armv7.tar.gz subconverter # run: tar czf subconverter_armv7.tar.gz subconverter
- name: Draft Release # - name: Draft Release
uses: softprops/action-gh-release@v1 # uses: softprops/action-gh-release@v1
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} # if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
with: # with:
files: subconverter_armv7.tar.gz # files: subconverter_armv7.tar.gz
draft: true # draft: true
#
aarch64_build: # aarch64_build:
name: Linux aarch64 Build # name: Linux aarch64 Build
runs-on: [self-hosted, linux, ARM64] # runs-on: [self-hosted, linux, ARM64]
steps: # steps:
- uses: actions/checkout@v3 # - uses: actions/checkout@v3
- name: Add commit id into version # - name: Add commit id into version
if: ${{ !startsWith(github.ref, 'refs/tags/') }} # if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h # run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
- name: Build # - name: Build
run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:aarch64-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh" # run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:aarch64-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- name: Upload # - name: Upload
uses: actions/upload-artifact@v3 # uses: actions/upload-artifact@v3
with: # with:
name: subconverter_aarch64 # name: subconverter_aarch64
path: subconverter/ # path: subconverter/
- name: Package Release # - name: Package Release
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} # if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
run: tar czf subconverter_aarch64.tar.gz subconverter # run: tar czf subconverter_aarch64.tar.gz subconverter
- name: Draft Release # - name: Draft Release
uses: softprops/action-gh-release@v1 # uses: softprops/action-gh-release@v1
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }} # if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
with: # with:
files: subconverter_aarch64.tar.gz # files: subconverter_aarch64.tar.gz
draft: true # draft: true
macos_build: macos_build:
name: macOS Build name: macOS Build

View File

@@ -144,145 +144,145 @@ jobs:
name: digest_386 name: digest_386
path: /tmp/digest.txt path: /tmp/digest.txt
armv7_build: # armv7_build:
name: Build ARMv7 Image # name: Build ARMv7 Image
runs-on: [self-hosted, linux, ARM] # runs-on: [self-hosted, linux, ARM]
steps: # steps:
- name: Checkout base # - name: Checkout base
uses: actions/checkout@v3 # uses: actions/checkout@v3
with: # with:
fetch-depth: 0 # fetch-depth: 0
#
- name: Set up Docker Buildx # - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2 # uses: docker/setup-buildx-action@v2
#
- name: Docker login # - name: Docker login
uses: docker/login-action@v2 # uses: docker/login-action@v2
with: # with:
username: ${{ secrets.DOCKER_USERNAME }} # username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} # password: ${{ secrets.DOCKER_PASSWORD }}
#
- name: Get commit SHA # - name: Get commit SHA
id: vars # id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT # run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
#
- name: Build and export # - name: Build and export
id: build # id: build
if: github.ref == 'refs/heads/master' # if: github.ref == 'refs/heads/master'
uses: docker/build-push-action@v3 # uses: docker/build-push-action@v3
with: # with:
platforms: linux/arm/v7 # platforms: linux/arm/v7
context: scripts/ # context: scripts/
tags: asdlokj1qpi23/subconverter:latest-armv7 # tags: asdlokj1qpi23/subconverter:latest-armv7
build-args: | # build-args: |
SHA=${{ steps.vars.outputs.sha_short }} # SHA=${{ steps.vars.outputs.sha_short }}
THREADS=4 # THREADS=4
outputs: type=image,push=true # outputs: type=image,push=true
#
- name: Replace tag without `v` # - name: Replace tag without `v`
if: startsWith(github.ref, 'refs/tags/') # if: startsWith(github.ref, 'refs/tags/')
uses: actions/github-script@v6 # uses: actions/github-script@v6
id: version # id: version
with: # with:
script: | # script: |
return context.payload.ref.replace(/\/?refs\/tags\/v/, '') # return context.payload.ref.replace(/\/?refs\/tags\/v/, '')
result-encoding: string # result-encoding: string
#
- name: Build release and export # - name: Build release and export
id: build_rel # id: build_rel
if: startsWith(github.ref, 'refs/tags/') # if: startsWith(github.ref, 'refs/tags/')
uses: docker/build-push-action@v3 # uses: docker/build-push-action@v3
with: # with:
platforms: linux/arm/v7 # platforms: linux/arm/v7
context: scripts/ # context: scripts/
tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}}-armv7 # tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}}-armv7
build-args: | # build-args: |
THREADS=4 # THREADS=4
outputs: type=image,push=true # outputs: type=image,push=true
#
- name: Save digest # - name: Save digest
if: github.ref == 'refs/heads/master' # if: github.ref == 'refs/heads/master'
run: echo ${{ steps.build.outputs.digest }} > /tmp/digest.txt # run: echo ${{ steps.build.outputs.digest }} > /tmp/digest.txt
#
- name: Save release digest # - name: Save release digest
if: startsWith(github.ref, 'refs/tags/') # if: startsWith(github.ref, 'refs/tags/')
run: echo ${{ steps.build_rel.outputs.digest }} > /tmp/digest.txt # run: echo ${{ steps.build_rel.outputs.digest }} > /tmp/digest.txt
#
- name: Upload artifact # - name: Upload artifact
uses: actions/upload-artifact@v3 # uses: actions/upload-artifact@v3
with: # with:
name: digest_armv7 # name: digest_armv7
path: /tmp/digest.txt # path: /tmp/digest.txt
#
arm64_build: # arm64_build:
name: Build ARM64 Image # name: Build ARM64 Image
runs-on: [self-hosted, linux, ARM64] # runs-on: [self-hosted, linux, ARM64]
steps: # steps:
- name: Checkout base # - name: Checkout base
uses: actions/checkout@v3 # uses: actions/checkout@v3
with: # with:
fetch-depth: 0 # fetch-depth: 0
#
- name: Set up Docker Buildx # - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2 # uses: docker/setup-buildx-action@v2
#
- name: Docker login # - name: Docker login
uses: docker/login-action@v2 # uses: docker/login-action@v2
with: # with:
username: ${{ secrets.DOCKER_USERNAME }} # username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} # password: ${{ secrets.DOCKER_PASSWORD }}
#
- name: Get commit SHA # - name: Get commit SHA
id: vars # id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT # run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
#
- name: Build and export # - name: Build and export
id: build # id: build
if: github.ref == 'refs/heads/master' # if: github.ref == 'refs/heads/master'
uses: docker/build-push-action@v3 # uses: docker/build-push-action@v3
with: # with:
platforms: linux/arm64 # platforms: linux/arm64
context: scripts/ # context: scripts/
tags: asdlokj1qpi23/subconverter:latest-arm64 # tags: asdlokj1qpi23/subconverter:latest-arm64
build-args: | # build-args: |
SHA=${{ steps.vars.outputs.sha_short }} # SHA=${{ steps.vars.outputs.sha_short }}
THREADS=4 # THREADS=4
outputs: type=image,push=true # outputs: type=image,push=true
#
- name: Replace tag without `v` # - name: Replace tag without `v`
if: startsWith(github.ref, 'refs/tags/') # if: startsWith(github.ref, 'refs/tags/')
uses: actions/github-script@v6 # uses: actions/github-script@v6
id: version # id: version
with: # with:
script: | # script: |
return context.payload.ref.replace(/\/?refs\/tags\/v/, '') # return context.payload.ref.replace(/\/?refs\/tags\/v/, '')
result-encoding: string # result-encoding: string
#
- name: Build release and export # - name: Build release and export
id: build_rel # id: build_rel
if: startsWith(github.ref, 'refs/tags/') # if: startsWith(github.ref, 'refs/tags/')
uses: docker/build-push-action@v3 # uses: docker/build-push-action@v3
with: # with:
platforms: linux/arm64 # platforms: linux/arm64
context: scripts/ # context: scripts/
tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}}-arm64 # tags: asdlokj1qpi23/subconverter:${{steps.version.outputs.result}}-arm64
build-args: | # build-args: |
THREADS=4 # THREADS=4
outputs: type=image,push=true # outputs: type=image,push=true
#
- name: Save digest # - name: Save digest
if: github.ref == 'refs/heads/master' # if: github.ref == 'refs/heads/master'
run: echo ${{ steps.build.outputs.digest }} > /tmp/digest.txt # run: echo ${{ steps.build.outputs.digest }} > /tmp/digest.txt
#
- name: Save release digest # - name: Save release digest
if: startsWith(github.ref, 'refs/tags/') # if: startsWith(github.ref, 'refs/tags/')
run: echo ${{ steps.build_rel.outputs.digest }} > /tmp/digest.txt # run: echo ${{ steps.build_rel.outputs.digest }} > /tmp/digest.txt
#
- name: Upload artifact # - name: Upload artifact
uses: actions/upload-artifact@v3 # uses: actions/upload-artifact@v3
with: # with:
name: digest_arm64 # name: digest_arm64
path: /tmp/digest.txt # path: /tmp/digest.txt
build: build:
name: Build name: Build

View File

@@ -1,11 +1,9 @@
# subconverter-docker # subconverter-docker
This is a minimized image to run https://github.com/tindy2013/subconverter.
For running this docker, simply use the following commands: For running this docker, simply use the following commands:
```bash ```bash
# run the container detached, forward internal port 25500 to host port 25500 # run the container detached, forward internal port 25500 to host port 25500
docker run -d --restart=always -p 25500:25500 tindy2013/subconverter:latest docker run -d --restart=always -p 25500:25500 asdlokj1qpi23/subconverter:latest
# then check its status # then check its status
curl http://localhost:25500/version curl http://localhost:25500/version
# if you see `subconverter vx.x.x backend` then the container is up and running # if you see `subconverter vx.x.x backend` then the container is up and running
@@ -16,7 +14,7 @@ Or run in docker-compose:
version: '3' version: '3'
services: services:
subconverter: subconverter:
image: tindy2013/subconverter:latest image: asdlokj1qpi23/subconverter:latest
container_name: subconverter container_name: subconverter
ports: ports:
- "15051:25500" - "15051:25500"

View File

@@ -2,23 +2,46 @@
Utility to convert between various proxy subscription formats. Utility to convert between various proxy subscription formats.
[![Build Status](https://github.com/tindy2013/subconverter/actions/workflows/build.yml/badge.svg)](https://github.com/tindy2013/subconverter/actions) [![Build Status](https://github.com/asdlokj1qpi23/subconverter/actions/workflows/build.yml/badge.svg)](https://github.com/tindy2013/subconverter/actions)
[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/tags) [![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/asdlokj1qpi23/subconverter.svg)](https://github.com/asdlokj1qpi23/subconverter/tags)
[![GitHub release](https://img.shields.io/github/release/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/releases) [![GitHub release](https://img.shields.io/github/release/asdlokj1qpi23/subconverter.svg)](https://github.com/asdlokj1qpi23/subconverter/releases)
[![GitHub license](https://img.shields.io/github/license/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/blob/master/LICENSE) [![GitHub license](https://img.shields.io/github/license/asdlokj1qpi23/subconverter.svg)](https://github.com/tindy2013/subconverter/blob/master/LICENSE)
[Docker README](https://github.com/tindy2013/subconverter/blob/master/README-docker.md) [Docker README](https://github.com/asdlokj1qpi23/subconverter/blob/master/README-docker.md)
[中文文档](https://github.com/tindy2013/subconverter/blob/master/README-cn.md) [中文文档](https://github.com/asdlokj1qpi23/subconverter/blob/master/README-cn.md)
- [subconverter](#subconverter) - [subconverter](#subconverter)
- [Docker](#docker)
- [Supported Types](#supported-types) - [Supported Types](#supported-types)
- [Quick Usage](#quick-usage) - [Quick Usage](#quick-usage)
- [Access Interface](#access-interface) - [Access Interface](#access-interface)
- [Description](#description) - [Description](#description)
- [Advanced Usage](#advanced-usage) - [Advanced Usage](#advanced-usage)
- [Auto Upload](#auto-upload) - [Auto Upload](#auto-upload)
## Docker
For running this docker, simply use the following commands:
```bash
# run the container detached, forward internal port 25500 to host port 25500
docker run -d --restart=always -p 25500:25500 asdlokj1qpi23/subconverter:latest
# then check its status
curl http://localhost:25500/version
# if you see `subconverter vx.x.x backend` then the container is up and running
```
Or run in docker-compose:
```yaml
---
version: '3'
services:
subconverter:
image: asdlokj1qpi23/subconverter:latest
container_name: subconverter
ports:
- "15051:25500"
restart: always
```
## Supported Types ## Supported Types
| Type | As Source | As Target | Target Name | | Type | As Source | As Target | Target Name |
@@ -95,7 +118,7 @@ Finally subscribe this link in Clash and you are done!
## Advanced Usage ## Advanced Usage
Please refer to [中文文档](https://github.com/tindy2013/subconverter/blob/master/README-cn.md#%E8%BF%9B%E9%98%B6%E7%94%A8%E6%B3%95). Please refer to [中文文档](https://github.com/asdlokj1qpi23/subconverter/blob/master/README-cn.md#%E8%BF%9B%E9%98%B6%E7%94%A8%E6%B3%95).
## Auto Upload ## Auto Upload
@@ -110,3 +133,6 @@ Example:
;uncomment the following line and enter your token to enable upload function ;uncomment the following line and enter your token to enable upload function
token = xxxxxxxxxxxxxxxxxxxxxxxx(Your Personal Access Token) token = xxxxxxxxxxxxxxxxxxxxxxxx(Your Personal Access Token)
``` ```
## Thanks
[tindy2013](https://github.com/tindy2013)
[https://github.com/tindy2013/subconverter](https://github.com/tindy2013/subconverter)