Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 45 additions & 18 deletions .github/workflows/build-native-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.branch }}
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18.16.x
node-version: 22
cache: npm
cache-dependency-path: ./web-ui
- name: Install npm
Expand All @@ -28,33 +26,62 @@ jobs:
- name: Build web UI
working-directory: ./web-ui
run: npm run build
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: setup graalvm
uses: graalvm/setup-graalvm@v1
with:
java-version: '24'
distribution: 'graalvm'
native-image-musl: 'true'
github-token: ${{ secrets.GITHUB_TOKEN }}
cache: 'maven'
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set APP version
run: |
mkdir data
[ -d data ] || mkdir data
export TZ=Asia/Shanghai
num1=$(date +%Y)
num2=$(date +%j)
sum=$((($num1 - 2023) * 366 + $num2))
echo $sum.$(date +%H%M)-dev > data/version
echo ${{ github.event.head_commit.message }} >> data/version
echo $((($(date +%Y) - 2023) * 366 + $(date +%j | sed 's/^0*//'))).$(date +%H%M) > data/version
echo "${{ github.event.head_commit.message }}" >> data/version
cp data/version data/app_version
cat data/version
- name: Build docker and push
- name: Build native with Maven (AMD64)
run: |
mvn -B -Pnative -Dnative.image.cache=true -Dnative-image.parallelism=4 package --file pom.xml
chmod a+x target/atv
ls -l target
- name: Build alist native docker and push
uses: docker/build-push-action@v6
with:
context: .
file: docker/Dockerfile-alist-native
platforms: linux/amd64
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/alist-tvbox-native:dev
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build xiaoya native docker and push
uses: docker/build-push-action@v6
with:
context: .
file: docker/Dockerfile-native
platforms: linux/amd64,linux/arm64
platforms: linux/amd64
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/xiaoya-tvbox-native:dev
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build xiaoya host native docker and push
uses: docker/build-push-action@v6
with:
context: .
file: docker/Dockerfile-native-host
platforms: linux/amd64
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/xiaoya-tvbox:native-dev
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/xiaoya-tvbox-native-host:dev
cache-from: type=gha
cache-to: type=gha,mode=max
2 changes: 1 addition & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:
- name: setup graalvm
uses: graalvm/setup-graalvm@v1
with:
java-version: '21'
java-version: '24'
distribution: 'graalvm'
native-image-musl: 'true'
github-token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- name: setup graalvm
uses: graalvm/setup-graalvm@v1
with:
java-version: '21'
java-version: '24'
distribution: 'graalvm' # See 'Options' for all available distributions
native-image-musl: 'true'
github-token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- name: Setup GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: '21'
java-version: '24'
distribution: 'graalvm'
native-image-musl: 'true'
github-token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -50,7 +50,7 @@ jobs:
package
chmod +x target/atv
cd target
tar zcvf atv.tar.gz atv
tar zcvf atv.tar.gz atv libsqlitejdbc.so
ls -lh

- name: Create release and upload binary
Expand Down
1 change: 1 addition & 0 deletions docker/Dockerfile-alist-native
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ ENV ALIST_PORT=5344 INSTALL=native NATIVE=true

WORKDIR /opt/atv/

COPY target/libsqlitejdbc.so ./
COPY config/alist.json /

COPY scripts/entrypoint-native.sh /entrypoint.sh
Expand Down
1 change: 1 addition & 0 deletions docker/Dockerfile-native
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ ENV INSTALL=native NATIVE=true

WORKDIR /opt/atv/

COPY target/libsqlitejdbc.so ./
COPY config/alist.json /

COPY scripts/index.sh /
Expand Down
1 change: 1 addition & 0 deletions docker/Dockerfile-native-host
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ ENV INSTALL=native-host NATIVE=true

WORKDIR /opt/atv/

COPY target/libsqlitejdbc.so ./
COPY config/alist-host.json /alist.json

COPY scripts/index.sh /
Expand Down
3 changes: 1 addition & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,7 @@
<imageName>atv</imageName>
<mainClass>cn.har01d.alist_tvbox.AListApplication</mainClass>
<buildArgs>
<buildArg>--static</buildArg>
<buildArg>--libc=musl</buildArg>
<buildArg>--static-nolibc</buildArg>
<buildArg>--enable-http</buildArg>
<buildArg>--enable-https</buildArg>
<buildArg>-march=compatibility</buildArg>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,9 +204,6 @@ public void saveStorage(Storage storage) {
}

public int executeUpdate(String sql) {
if (System.getenv("NATIVE") != null && "sqlite3".equals(database)) {
return Utils.executeUpdate(sql);
}
try {
log.debug("executeUpdate: {}", sql);
return alistJdbcTemplate.update(sql);
Expand All @@ -218,10 +215,6 @@ public int executeUpdate(String sql) {

public boolean existsById(String tableName, long id) {
String sql = "SELECT 1 FROM " + tableName + " WHERE id = ? LIMIT 1";
if (System.getenv("NATIVE") != null && "sqlite3".equals(database)) {
return StringUtils.isNotBlank(Utils.executeQuery(sql));
}

try {
Integer result = alistJdbcTemplate.queryForObject(sql, new Object[]{id}, Integer.class);
return result != null;
Expand Down