Build Test Images #96
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |