Skip to content

Build Test Images

Build Test Images #96

name: Build Test Images
on:
push:
branches: [ main ]
paths-ignore:
- '**/README.md'
- '**/Dockerfile'
- '**/save_docker_pull_count.yml'
- '**/build_container_images.yml'
- '**/Git_Actions-Dockerfile'
pull_request:
branches: [ main ]
schedule:
- cron: '10 5 * * 2,5'
workflow_dispatch:
env:
build_repo_docker: 'tachidesk'
build_base_image_temurin: 'eclipse-temurin:11-jre-jammy'
build_base_image_temurin_platform: 'linux/amd64'
build_base_image_alpine: 'alpine:3.16'
build_base_image_alpine_platform: 'linux/amd64'
startup_script_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/scripts/startup_script.sh'
tachidesk_webui_stable_url: 'https://api.github.com/repos/suwayomi/Tachidesk-Server/releases/latest'
jobs:
build_stable:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: main
path: main
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: get latest release metadata
id: get_latest_release_metadata
run: |
cd main
release_url=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "https://.*./releases/download.*.Tachidesk-Server.*.jar")
release_tag=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "tag_name.*.v[0-9]+.[0-9]+.[0-9]+" | egrep -o "v[0-9]+.[0-9]+.[0-9]+")
release_var=$(echo $release_url | egrep -o "Tachidesk-Server-$release_tag-r[0-9]+.jar" | egrep -o "$release_tag-r[0-9]+")
release_commit=$(echo $release_var | cut -f2 -d"r")
release_filename=Tachidesk-Server-${release_var}.jar
release_version=$(echo $release_tag | cut -c2-)
echo "release_url=$release_url" >> $GITHUB_OUTPUT
echo "release_commit=$release_commit" >> $GITHUB_OUTPUT
echo "release_tag=$release_tag" >> $GITHUB_OUTPUT
echo "release_filename=$release_filename" >> $GITHUB_OUTPUT
echo "release_version=$release_version" >> $GITHUB_OUTPUT
echo "release_var=$release_var" >> $GITHUB_OUTPUT
tachidesk_docker_git_commit=$(git rev-list --count HEAD)
echo "tachidesk_docker_git_commit=$tachidesk_docker_git_commit" >> $GITHUB_OUTPUT
build_date=$(date "+%F")
echo "build_date=$build_date" >> $GITHUB_OUTPUT
echo "repository_owner_lower=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
- name: Build and push stable ubuntu
id: docker_build_release_ubuntu
uses: docker/build-push-action@v3
with:
file: scripts/dockerfiles/Test_Git_Actions-Dockerfile
platforms: ${{ env.build_base_image_temurin_platform }}
push: true
build-args: |
BASE_IMAGE=${{ env.build_base_image_temurin }}
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
IMAGE_TYPE=develop-ubuntu
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
IMAGE_OWNER=${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
tags: |
ghcr.io/${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:develop
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
- name: Build and push stable alpine
id: docker_build_release_alpine
uses: docker/build-push-action@v3
with:
file: scripts/dockerfiles/Test_Git_Actions-Dockerfile
platforms: ${{ env.build_base_image_alpine_platform }}
push: true
build-args: |
BASE_IMAGE=${{ env.build_base_image_alpine }}
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
IMAGE_TYPE=develop-alpine
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
IMAGE_OWNER=${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
tags: |
ghcr.io/${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:develop-alpine
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache