Commits (2473)
stages:
- build
- deploy
variables:
MAVEN_CLI_OPTS: "-s .ci/settings.xml --batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .m2/repository/
build:
stage: build
image: registry.gitlab.com/tinymediamanager/docker/packaging:20220601182613
environment:
name: nightly
url: https://nightly.tinymediamanager.org
allow_failure: false
tags:
- tmm # force running on own runners
variables:
PURGE_CF_CACHE: 'curl -X POST https://api.cloudflare.com/client/v4/zones/$CF_ZONE/purge_cache -H "Content-Type: application/json" -H "Authorization:Bearer $CF_BEARER" --data "{\"purge_everything\":true}"'
script:
# just run on changes from the last 24 hrs
# does not work at the moment since we cannot abort subsequent jobs
# if [ "$NIGHTLY_BUILD_FORCE" = "false" ] && [ $(git rev-list --after="24 hours" --count "$CI_COMMIT_SHA") -eq 0 ]; then exit 0; fi
# generate changelog.txt for nightly builds
- sh generate_changelog.sh
# package archives
- mvn $MAVEN_CLI_OPTS -P gitlab-ci -P dist -DbuildNumber=${CI_COMMIT_SHORT_SHA} -Dgetdown=getdown-nightly.txt -Dnightly=true -Dthread_pool_size=1 clean package
# build windows installer
- chmod 777 . dist
- sudo -u xclient PATH=$PATH:/opt/bin AppBundler/create_windows_installer.sh
# build macOS dmg file
- sh AppBundler/create_dmg.sh
# push the build to the webserver
- lftp -c "set ftp:ssl-allow no; open -u ${FTP_USER_NIGHTLY},${FTP_PASSWORD_NIGHTLY} ${FTP_HOST}; mirror -Rev build/ ./upload/v4/build; mirror -Rev dist/ ./upload/v4/dist; chmod -R g+w ./upload/v4"
# and publish the files on the webserver
- curl https://nightly.tinymediamanager.org/${PUBLISH_ENDPOINT_V4}
- curl https://nightly.tinymediamanager.org/${CREATE_INDEX}
- curl https://nightly.tinymediamanager.org/${CREATE_INDEX_V4}
# purge CF cache
# - 'eval "$PURGE_CF_CACHE"'
artifacts:
expire_in: 2 days
paths:
- dist/tmm*linux-amd64.tar.gz # upload for docker build
deploy-docker:
stage: deploy
image: docker:latest
services:
- name: docker:dind
needs:
- build
variables:
IMAGE_NAME: tinymediamanager/tinymediamanager:4-nightly
script:
# login
- docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
# build
- tar xzf dist/tmm*linux-amd64.tar.gz -C docker/
- cd docker
- docker build -f Dockerfile.nightly -t $IMAGE_NAME .
# push to the registry
- docker push $IMAGE_NAME
stages:
- build
- deploy
variables:
MAVEN_CLI_OPTS: "-s .ci/settings.xml --batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
build:
stage: build
image: registry.gitlab.com/tinymediamanager/docker/packaging:20220601182613
environment:
name: prerelease
url: https://prerelease.tinymediamanager.org
allow_failure: false
variables:
PURGE_CF_CACHE: 'curl -X POST https://api.cloudflare.com/client/v4/zones/$CF_ZONE/purge_cache -H "Content-Type: application/json" -H "Authorization:Bearer $CF_BEARER" --data "{\"purge_everything\":true}"'
script:
# package
- mvn $MAVEN_CLI_OPTS -P gitlab-ci -P dist -DbuildNumber=${CI_COMMIT_SHORT_SHA} -Dgetdown=getdown-prerelease.txt -Dprerelease=true -Dthread_pool_size=1 clean package
# build windows installer
- chmod 777 . dist
- sudo -u xclient PATH=$PATH:/opt/bin AppBundler/create_windows_installer.sh
# build macOS dmg file
- sh AppBundler/create_dmg.sh
# push the build to the webserver
- lftp -c "set ftp:ssl-allow no; open -u ${FTP_USER_PREREL},${FTP_PASSWORD_PREREL} ${FTP_HOST}; mirror -Rev build/ ./upload/v4/build; mirror -Rev dist/ ./upload/v4/dist; chmod -R g+w ./upload/v4"
# and publish the files on the webserver
- curl https://prerelease.tinymediamanager.org/${PUBLISH_ENDPOINT_V4}
- curl https://prerelease.tinymediamanager.org/${CREATE_INDEX}
- curl https://prerelease.tinymediamanager.org/${CREATE_INDEX_V4}
# purge CF cache
- 'eval "$PURGE_CF_CACHE"'
artifacts:
expire_in: 2 days
paths:
- dist/tmm*linux-amd64.tar.gz # upload for docker build
deploy-docker:
stage: deploy
image: docker:latest
services:
- name: docker:dind
needs:
- build
variables:
IMAGE_NAME: tinymediamanager/tinymediamanager:4-prerelease
script:
# login
- docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
# build
- tar xzf dist/tmm*linux-amd64.tar.gz -C docker/
- cd docker
- docker build -f Dockerfile.prerelease -t $IMAGE_NAME .
# push to the registry
- docker push $IMAGE_NAME
stages:
- build
- deploy
variables:
MAVEN_CLI_OPTS: "-s .ci/settings.xml --batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
build:
stage: build
image: registry.gitlab.com/tinymediamanager/docker/packaging:20220601182613
environment:
name: release
url: https://release.tinymediamanager.org
allow_failure: false
variables:
PURGE_CF_CACHE: 'curl -X POST https://api.cloudflare.com/client/v4/zones/$CF_ZONE/purge_cache -H "Content-Type: application/json" -H "Authorization:Bearer $CF_BEARER" --data "{\"purge_everything\":true}"'
script:
##
## Install ssh-agent if not already installed, it is required by Docker.
## (change apt-get to yum if you use an RPM-based image)
##
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
##
## Run ssh-agent (inside the build environment)
##
- eval $(ssh-agent -s)
##
## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
## We're using tr to fix line endings which makes ed25519 keys work
## without extra base64 encoding.
## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
##
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
##
## Create the SSH directory and give it the right permissions
##
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
##
## set gpg key
##
- echo "${GPG_PRIVATE_KEY}" | gpg --batch --import
- gpg --list-keys
##
## configure git for version push
##
- git config --global user.name ${SSH_USER_NAME}
- git config --global user.email ${SSH_USER_EMAIL}
- git checkout -f ${CI_COMMIT_REF_NAME}
- git remote set-url origin git@gitlab.com:tinyMediaManager/${CI_PROJECT_NAME}.git
##
## perform the release
##
- mvn $MAVEN_CLI_OPTS -P gitlab-ci -P dist -DbuildNumber=${CI_COMMIT_SHORT_SHA} -Dgetdown=getdown.txt -Dthread_pool_size=1 release:prepare release:perform -Dresume=false -DautoVersionSubmodules=true -DdryRun=false -Dmaven.test.skip=true -DskipITs -DscmCommentPrefix="[ci skip]"
# build windows installer
- chmod 777 . dist
- sudo -u xclient PATH=$PATH:/opt/bin AppBundler/create_windows_installer.sh
# build macOS dmg file
- sh AppBundler/create_dmg.sh
# push the build to the webserver
- lftp -c "set ftp:ssl-allow no; open -u ${FTP_USER_RELEASE},${FTP_PASSWORD_RELEASE} ${FTP_HOST}; mirror -Rev build/ ./upload/v4/build; mirror -Rev dist/ ./upload/v4/dist; chmod -R g+w ./upload/v4"
# and publish the files on the webserver
- curl https://release.tinymediamanager.org/${PUBLISH_ENDPOINT_V4}
- curl https://release.tinymediamanager.org/${CREATE_INDEX}
- curl https://release.tinymediamanager.org/${CREATE_INDEX_V4}
# purge CF cache
- 'eval "$PURGE_CF_CACHE"'
artifacts:
expire_in: never
paths:
- build/
- dist/
stages:
- build
- deploy
variables:
MAVEN_CLI_OPTS: "-s .ci/settings.xml --batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
build:
stage: build
image: registry.gitlab.com/tinymediamanager/docker/packaging:20220601182613
environment:
name: test
url: https://test.tinymediamanager.org
allow_failure: false
tags:
- tmm # force running on own runners
variables:
PURGE_CF_CACHE: 'curl -X POST https://api.cloudflare.com/client/v4/zones/$CF_ZONE/purge_cache -H "Content-Type: application/json" -H "Authorization:Bearer $CF_BEARER" --data "{\"purge_everything\":true}"'
script:
# generate changelog.txt for nightly builds
- sh generate_changelog.sh
# package archives
- mvn $MAVEN_CLI_OPTS -P gitlab-ci -P dist -DbuildNumber=${CI_COMMIT_SHORT_SHA} -Dgetdown=getdown-nightly.txt -Dnightly=true -Dthread_pool_size=1 clean package
# build windows installer
- chmod 777 . dist
- sudo -u xclient PATH=$PATH:/opt/bin AppBundler/create_windows_installer.sh
# build macOS dmg file
- sh AppBundler/create_dmg.sh
# push the build to the webserver
- lftp -c "set ftp:ssl-allow no; open -u ${FTP_USER_TEST},${FTP_PASSWORD_TEST} ${FTP_HOST}; mirror -Rev build/ ./upload/v4/build; mirror -Rev dist/ ./upload/v4/dist; chmod -R g+w ./upload/v4"
# and publish the files on the webserver
- curl https://test.tinymediamanager.org/${PUBLISH_ENDPOINT_V4}
# purge CF cache
- 'eval "$PURGE_CF_CACHE"'
......@@ -22,25 +22,4 @@
<passphrase>${env.GPG_PASSPHRASE}</passphrase>
</server>
</servers>
<profiles>
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>ossrh-snapshot</id>
<name>Sonatype Snapshot Repository</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
</settings>
......@@ -13,18 +13,18 @@
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
......
......@@ -10,3 +10,11 @@
*.jpg binary
*.jar binary
*.exe binary
*.vsmeta binary
*.avi binary
*.mkv binary
*.mka binary
*.ac3 binary
*.dts binary
*.ts binary
......@@ -9,6 +9,9 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
javacore*
jitdump*
Snap*
#Maven
target
......@@ -50,4 +53,9 @@ tvshows.db
/data/
/tmp/
/templates/*.jar
launcher-extra.yml
/native/addons/
/native/*/addons/**
/src/test/resources/tmm_build_license
/dependency-reduced-pom.xml
image: maven:3-jdk-8-alpine
image: maven:3-jdk-11
variables:
MAVEN_CLI_OPTS: "-s .ci/settings.xml --batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
DS_DEFAULT_ANALYZERS: "gemnasium-maven"
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .m2/repository/
- target/
stages:
- compile
- test
- build
- package
- deploy
compile:
stage: compile
script:
- mvn $MAVEN_CLI_OPTS -U clean compile # re-fetch snapshots every time
test:jdk8:
test:jdk11:
stage: test
image: maven:3-jdk-8
image: registry.gitlab.com/tinymediamanager/docker/jdk11:20220428182408
except:
- master@tinyMediaManager/tinyMediaManager
- main@tinyMediaManager/tinyMediaManager
only:
- pushes
tags:
- tmm # force running on own runners
script:
# install libmediainfo for unit tests
- apt-get update && apt-get install -y --no-install-recommends libmms0 libglib2.0-0
- wget https://mediaarea.net/download/binary/libzen0/0.4.38/libzen0v5_0.4.38-1_amd64.Debian_9.0.deb
- dpkg -i libzen0v5_0.4.38-1_amd64.Debian_9.0.deb
- wget https://mediaarea.net/download/binary/libmediainfo0/20.03/libmediainfo0v5_20.03-1_amd64.Debian_9.0.deb
- dpkg -i libmediainfo0v5_20.03-1_amd64.Debian_9.0.deb
- mvn $MAVEN_CLI_OPTS -DskipTests=false -DskipITs=true -Dmaven.test.failure.ignore=false test
- mvn $MAVEN_CLI_OPTS -U -DskipTests=false -DskipITs=true -Dmaven.test.failure.ignore=false clean test
artifacts:
expire_in: 1 days
test:jdk11:
test:jdk15:
stage: test
image: maven:3-jdk-11
image: registry.gitlab.com/tinymediamanager/docker/jdk15:20220428182411
except:
- master@tinyMediaManager/tinyMediaManager
- main@tinyMediaManager/tinyMediaManager
only:
- pushes
tags:
- tmm # force running on own runners
script:
# install libmediainfo for unit tests
- apt-get update && apt-get install -y --no-install-recommends libmms0 libglib2.0-0
- wget https://mediaarea.net/download/binary/libzen0/0.4.38/libzen0v5_0.4.38-1_amd64.Debian_9.0.deb
- dpkg -i libzen0v5_0.4.38-1_amd64.Debian_9.0.deb
- wget https://mediaarea.net/download/binary/libmediainfo0/20.03/libmediainfo0v5_20.03-1_amd64.Debian_9.0.deb
- dpkg -i libmediainfo0v5_20.03-1_amd64.Debian_9.0.deb
- mvn $MAVEN_CLI_OPTS -DskipTests=false -DskipITs=true -Dmaven.test.failure.ignore=false test
- mvn $MAVEN_CLI_OPTS -U -DskipTests=false -DskipITs=true -Dmaven.test.failure.ignore=false clean test
artifacts:
expire_in: 1 days
test:jdk11_openj9:
test:jdk16:
stage: test
image: registry.gitlab.com/tinymediamanager/docker/jdk11_openj9
image: registry.gitlab.com/tinymediamanager/docker/jdk16:20220428182411
except:
- master@tinyMediaManager/tinyMediaManager
- main@tinyMediaManager/tinyMediaManager
only:
- pushes
tags:
- tmm # force running on own runners
script:
- mvn $MAVEN_CLI_OPTS -DskipTests=false -DskipITs=true -Dmaven.test.failure.ignore=false test
- mvn $MAVEN_CLI_OPTS -U -DskipTests=false -DskipITs=true -Dmaven.test.failure.ignore=false clean test
artifacts:
expire_in: 1 days
test:jdk14_openj9:
test:jdk17:
stage: test
image: registry.gitlab.com/tinymediamanager/docker/jdk14_openj9
image: registry.gitlab.com/tinymediamanager/docker/jdk17:20220428182414
except:
- master@tinyMediaManager/tinyMediaManager
- main@tinyMediaManager/tinyMediaManager
only:
- pushes
tags:
- tmm # force running on own runners
script:
- mvn $MAVEN_CLI_OPTS -DskipTests=false -DskipITs=true -Dmaven.test.failure.ignore=false test
# use dependency scanning (only on QA)
include:
template: Dependency-Scanning.gitlab-ci.yml
gemnasium-maven-dependency_scanning:
variables:
MAVEN_CLI_OPTS: "-DskipTests --batch-mode"
rules:
- if: '$QA_BUILD == "true"'
when: on_success
- mvn $MAVEN_CLI_OPTS -U -DskipTests=false -DskipITs=true -Dmaven.test.failure.ignore=false clean test
artifacts:
expire_in: 1 days
# sonarqube analysis
sonarqube-qa:
stage: test
image: registry.gitlab.com/tinymediamanager/docker/reporting:20220530063549
only:
variables:
- $QA_BUILD == "true"
except:
- pushes
tags:
- tmm # force running on own runners
allow_failure: true
script:
- mvn $MAVEN_CLI_OPTS sonar:sonar -Dsonar.projectKey=org.tinymediamanager:tinyMediaManager -Dsonar.organization=tinymediamanager -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${SONARCLOUD_API_TOKEN}
- mvn $MAVEN_CLI_OPTS clean compile sonar:sonar -Dsonar.projectKey=org.tinymediamanager:tinyMediaManager -Dsonar.organization=tinymediamanager -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${SONARCLOUD_API_TOKEN}
artifacts:
expire_in: 1 days
paths:
- target/dependency-check-report.html
##########################################
# nightly
##########################################
deploy:nightly:
stage: deploy
image: maven:3-jdk-8 # stay with stretch
environment:
name: nightly
url: https://nightly.tinymediamanager.org
only:
variables:
- $NIGHTLY_BUILD == "true"
except:
- pushes # do not run packaging on push-builds
script:
# update package sources and install ant, 32 bit libs, git and lftp
- dpkg --add-architecture i386 && apt-get update && apt-get install -y --no-install-recommends ant libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386 git lftp curl
# generate changelog.txt for nightly builds
- ./generate_changelog.sh
# package
- mvn $MAVEN_CLI_OPTS -P gitlab-ci -DbuildNumber=${CI_COMMIT_SHA:0:8} -Dgetdown=getdown-nightly.txt -Dnightly=true -Dthread_pool_size=1 package
# write the job ID to the repo
- curl -X PUT -H "PRIVATE-TOKEN:${TMMBUILD_AUTH_TOKEN}" -H "Content-Type:application/json" --data "{\"branch\":\"master\", \"author_email\":\"tinymediamanager@tinymediamanager.org\", \"author_name\":\"tinyMediaManager\", \"content\":\"${CI_JOB_ID}\", \"commit_message\":\"new build\"}" https://gitlab.com/api/v4/projects/7895208/repository/files/v3_job_id.txt
# trigger the deployment on nightly.tinymediamanager.org
- curl -X POST -F "token=${NIGHTLY_PIPELINE_TOKEN}" -F "ref=master" https://gitlab.com/api/v4/projects/7895208/trigger/pipeline
artifacts:
paths:
- build/
- dist/
expire_in: 1 week
deploy:prerel:
trigger:
include: .ci/deploy_nightly.yml
strategy: depend
##########################################
# PRE-RELEASE
##########################################
deploy:PRE-RELEASE:
stage: deploy
image: maven:3-jdk-8 # stay with stretch
environment:
name: prerelease
url: https://prerelease.tinymediamanager.org
only:
- master@tinyMediaManager/tinyMediaManager
- main@tinyMediaManager/tinyMediaManager
when: manual
script:
# update package sources and install ant + 32 bit libs
- dpkg --add-architecture i386 && apt-get update && apt-get install -y --no-install-recommends ant libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386 lftp curl
# package
- mvn $MAVEN_CLI_OPTS -P gitlab-ci -DbuildNumber=${CI_COMMIT_SHA:0:8} -Dgetdown=getdown-prerelease.txt -Dprerelease=true -Dthread_pool_size=1 package
# trigger the deployment on prerelease.tinymediamanager.org (new HP)
- curl -X POST -F "token=${PREREL_PIPELINE_TOKEN}" -F "ref=master" -F "variables[JOB_ID]=${CI_JOB_ID}" https://gitlab.com/api/v4/projects/10869644/trigger/pipeline
artifacts:
paths:
- build/
- dist/
expire_in: 1 month
trigger:
include: .ci/deploy_prerelease.yml
strategy: depend
##########################################
# RELEASE
##########################################
deploy:RELEASE:
stage: deploy
image: maven:3-jdk-8 # use stretch
environment:
name: release
url: https://release.tinymediamanager.org
only:
- main@tinyMediaManager/tinyMediaManager
when: manual
trigger:
include: .ci/deploy_release.yml
strategy: depend
##########################################
# DOCKER - RELEASE
##########################################
deploy:DOCKER-RELEASE:
stage: deploy
image: docker:latest
only:
- master
- main@tinyMediaManager/tinyMediaManager
when: manual
services:
- name: docker:dind
variables:
TMM_VERSION: "4.3.3"
IMAGE_NAME: tinymediamanager/tinymediamanager:${TMM_VERSION}
script:
# update package sources and install ant + 32 bit libs
- dpkg --add-architecture i386 && apt-get update && apt-get install -y --no-install-recommends ant libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386 lftp curl
##
## Install ssh-agent if not already installed, it is required by Docker.
## (change apt-get to yum if you use an RPM-based image)
##
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
##
## Run ssh-agent (inside the build environment)
##
- eval $(ssh-agent -s)
##
## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
## We're using tr to fix line endings which makes ed25519 keys work
## without extra base64 encoding.
## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
##
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
##
## Create the SSH directory and give it the right permissions
##
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
##
## set gpg key
##
- echo "${GPG_PRIVATE_KEY}" | gpg --batch --import
- gpg --list-keys
##
## configure git for version push
##
- git config --global user.name ${SSH_USER_NAME}
- git config --global user.email ${SSH_USER_EMAIL}
- git checkout -f ${CI_COMMIT_REF_NAME}
- git remote set-url origin git@gitlab.com:tinyMediaManager/${CI_PROJECT_NAME}.git
##
## perform the release
##
- mvn $MAVEN_CLI_OPTS -P gitlab-ci -DbuildNumber=${CI_COMMIT_SHA:0:8} -Dgetdown=getdown.txt -Dthread_pool_size=1 release:prepare release:perform -Dresume=false -DautoVersionSubmodules=true -DdryRun=false -Dmaven.test.skip=true -DskipITs -DscmCommentPrefix="[ci skip]"
# trigger the deployment on release.tinymediamanager.org (new HP)
- curl -X POST -F "token=${RELEASE_PIPELINE_TOKEN}" -F "ref=master" -F "variables[JOB_ID]=${CI_JOB_ID}" https://gitlab.com/api/v4/projects/10869704/trigger/pipeline
artifacts:
paths:
- build/
- dist/
# login
- docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
# build
- cd docker
- docker build -f Dockerfile -t $IMAGE_NAME .
- docker tag $IMAGE_NAME tinymediamanager/tinymediamanager:latest
# push to the registry
- docker push $IMAGE_NAME
- docker push tinymediamanager/tinymediamanager:latest
##########################################
# TEST
##########################################
deploy:test:
stage: deploy
only:
variables:
- $TEST_BUILD == "true"
when: manual
trigger:
include: .ci/deploy_test.yml
strategy: depend
This diff is collapsed.
eclipse.preferences.version=1
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
formatter_profile=_tinyMediaManager
formatter_settings_version=12
formatter_settings_version=20
org.eclipse.jdt.ui.exception.name=e
org.eclipse.jdt.ui.gettersetter.use.is=true
org.eclipse.jdt.ui.ignorelowercasenames=true
......
#!/bin/sh
mkdir macos_dmg
cd macos_dmg
unzip -X ../dist/tmm_*_macos*.zip -d tinyMediaManager
OUTSIZE=$(du -s tinyMediaManager | cut -f1)
dd if=/dev/zero of=temp.dmg bs=1124 count="${OUTSIZE}"
mkfs.hfsplus -v "tinyMediaManager" temp.dmg
hfsplus temp.dmg addall tinyMediaManager
hfsplus temp.dmg addall ../AppBundler/macos
hfsplus temp.dmg symlink "Applications" /Applications
hfsplus temp.dmg chmod 755 tinyMediaManager.app/Contents/MacOS/tinyMediaManager
hfsplus temp.dmg chmod 755 tinyMediaManager.app/Contents/MacOS/JavaApplicationStub
dmg dmg temp.dmg tinyMediaManager.dmg
cp tinyMediaManager.dmg ../dist/tinyMediaManager.dmg
cd ..
rm -rf macos_dmg
#!/bin/sh
mkdir windows_installer
cd windows_installer
unzip ../dist/tmm_*_windows*.zip
cp ../AppBundler/installer.iss .
cp ../AppBundler/tmm.ico .
iscc installer.iss
cp Output/tinyMediaManagerSetup.exe ../dist/
cd ..
rm -rf windows_installer
#!/usr/bin/env bash
#
# tinyMediaManager v3 by Manuel Laggner
# tinyMediaManager v4 by Manuel Laggner
# https://www.tinymediamanager.org/
# SPDX-License-Identifier: Apache-2.0
#
# Launch tmm (or the updater if tmm.jar is missing)
# legacy launch script for tinyMediaManager
# Allow the script to be called from any directory and through symlinks
TMM_DIR="$(dirname "$(test -L "${BASH_SOURCE[0]}" && \
readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")"
# Cancel the updater if tmm.jar is present for execution
if [ -f "$TMM_DIR/tmm.jar" ]; then
PARAMS="-Dsilent=noupdate"
fi
# Use IPv4 when possible and declare the appbase
PARAMS+=("-Djava.net.preferIPv4Stack=true"
"-Dappbase=https://www.tinymediamanager.org/" "-jar"
)
# Ma! Start the car! :)
cd "$TMM_DIR" || return 1
java "${PARAMS[@]}" getdown.jar .
./tinyMediaManager "$@"
#!/usr/bin/env bash
#
# tinyMediaManager v3 by Manuel Laggner
# https://www.tinymediamanager.org/
# SPDX-License-Identifier: Apache-2.0
#
# Control the execution parameters for tmm via the command line
# And they wonder why Java gets a bad rap...
PARAMS=(
"-classpath"
"tmm.jar:lib/*"
)
# If invoked on Linux system, add 'jna.nosys' to the exec parameters
if [ "$OSTYPE" == "linux-gnu" ]; then
PARAMS+=(
"-Djna.nosys=true"
)
fi
PARAMS+=(
"-Djava.net.preferIPv4Stack=true" "-Xms64m"
"-Dfile.encoding=UTF-8" "-Dappbase=https://www.tinymediamanager.org/"
"-Djava.awt.headless=true" "-Xmx512m" "-Xss512k"
"-Dtmm.consoleloglevel=INFO"
)
# Allow the script to be called from any directory and through symlinks
TMM_DIR="$(dirname "$(test -L "${BASH_SOURCE[0]}" && \
readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")"
# What are you waiting for? An introduction??
cd "$TMM_DIR" || return 1
java "${PARAMS[@]}" org.tinymediamanager.TinyMediaManager "$@"
#!/usr/bin/env bash
#
# tinyMediaManager v3 by Manuel Laggner
# https://www.tinymediamanager.org/
# SPDX­License­Identifier: Apache-2.0
#
# Run the updater first whether we need it or not
# Set desired execution flags
PARAMS=("-Djava.net.preferIPv4Stack=true"
"-Dappbase=https://www.tinymediamanager.org/" "-jar"
)
# Allow the script to be called from any directory and through symlinks
TMM_DIR="$(dirname "$(test -L "${BASH_SOURCE[0]}" && \
readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")"
# We're taking the long way around, so get a move-on already!!
cd "$TMM_DIR" || return 1
java "${PARAMS[@]}" getdown.jar .
#!/usr/bin/env bash
#
# tinyMediaManager v3 by Manuel Laggner
# https://www.tinymediamanager.org/
# SPDX­License­Identifier: Apache-2.0
#
# Run the updater first whether we need it or not
# Set desired execution flags
PARAMS=( "-Dsilent" "-Djava.net.preferIPv4Stack=true"
"-Dappbase=https://www.tinymediamanager.org/" "-jar"
)
# Allow the script to be called from any directory and through symlinks
TMM_DIR="$(dirname "$(test -L "${BASH_SOURCE[0]}" && \
readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")"
# We're taking the long way around, so get a move-on already!!
cd "$TMM_DIR" || return 1
java "${PARAMS[@]}" getdown.jar .
......@@ -3,9 +3,9 @@
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>JavaApplicationStub</string>
<string>tinyMediaManager</string>
<key>CFBundleGetInfoString</key>
<string>tinyMediaManager %VERSION% for Mac OS X</string>
<string>tinyMediaManager %VERSION% for macOS</string>
<key>CFBundleIconFile</key>
<string>tmm.icns</string>
<key>CFBundleIdentifier</key>
......@@ -27,4 +27,4 @@
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
</dict>
</plist>
\ No newline at end of file
</plist>
#!/bin/sh
#####################################################################################
# Just a kickstarter to launch the real app
#####################################################################################
#!/usr/bin/env bash
#
# tinyMediaManager v4 by Manuel Laggner
# https://www.tinymediamanager.org/
# SPDX-License-Identifier: Apache-2.0
#
# launch tinyMediaManager v4 launcher
# find the path where to execute tmm
PRG=$0
......@@ -16,5 +19,6 @@ while [ -h "$PRG" ]; do
done
progdir=`dirname "$PRG"`
cd "$progdir/../Resources/Java/"
exec `/bin/sh tinyMediaManagerOSX.sh`
\ No newline at end of file
cd "$progdir"
./tinyMediaManager