reenable the container testing step

thank you Docker docs: https://docs.docker.com/build/ci/github-actions/test-before-push/
This commit is contained in:
Nogweii
2023-05-29 15:43:06 -07:00
parent b67e033327
commit 40f0caaf0d

View File

@@ -17,6 +17,7 @@ on:
env:
server_repo: ${{ inputs.tachidesk_release_type == 'stable' && 'Tachidesk-Server' || 'Tachidesk-Server-prevew' }}
test_image_tag: ghcr.io/suwayomi/tachidesk:testing
jobs:
build_stable:
@@ -34,7 +35,6 @@ jobs:
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
@@ -44,7 +44,7 @@ jobs:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: get latest release metadata
- name: Get latest release metadata
id: get_latest_release_metadata
run: |
cd main
@@ -66,11 +66,53 @@ jobs:
echo "tachidesk_docker_git_commit=$tachidesk_docker_git_commit" >> $GITHUB_OUTPUT
echo "build_date=$build_date" >> $GITHUB_OUTPUT
- name: Build container image
id: docker_build_release_ubuntu
# this only builds the amd64 version of the image, which is fine as that's
# all that is needed to test the container on Github Actions' build servers (which are running amd64 CPUs)
- name: Build container image to test
uses: docker/build-push-action@v3
with:
load: true # this is important, as this tells build-push-action to save the container to the local docker daemon
build-args: |
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
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 }}
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
tags: ${{ env.test_image_tag }}
# Launch the container and then hit the about API to verifiy that it can start up correctly.
- name: Test new container image
run: |
mkdir -p /home/runner/work/_temp/tachidesk
chmod -R 777 /home/runner/work/_temp/tachidesk
docker run --rm -d -p 127.0.0.1:4568:4567 -v /home/runner/work/_temp/tachidesk:/home/suwayomi/.local/share/Tachidesk --name=test_image_stable ${{ env.test_image_tag }}
sleep 15
cat /home/runner/work/_temp/tachidesk/logfile.log
curl -s 127.0.0.1:4568/api/v1/settings/about/ && val=$(curl -s 127.0.0.1:4568/api/v1/settings/about/ | grep -o "Tachidesk" | sort --unique)
if [[ $val == "Tachidesk" ]]; then
echo ""
echo "Tachidesk stable ubuntu run successfully"
echo "value=true" >> $GITHUB_OUTPUT
docker stop test_image_stable
else
echo ""
echo "Tachidesk stable ubuntu run Failed"
echo "value=false" >> $GITHUB_OUTPUT
curl \
-F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@106949211932606464>\nDocker ${{ inputs.tachidesk_release_type }} image dry run failed! 😢 Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
-F "file1=@/home/runner/work/_temp/tachidesk/logfile.log" \
"https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
fi
exit 1
fi
# Now we build for all of the platforms we support here. NB: the amd64
# won't be rebuilt since the local docker daemon has that still cached
- name: Push container image to registry
uses: docker/build-push-action@v3
with:
file: scripts/dockerfiles/Git_Actions-Dockerfile
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
push: true
build-args: |
@@ -85,44 +127,13 @@ jobs:
ghcr.io/suwayomi/tachidesk:latest
ghcr.io/suwayomi/tachidesk:${{ inputs.tachidesk_release_type }}
ghcr.io/suwayomi/tachidesk:${{ inputs.tachidesk_release_type == 'stable' && steps.get_latest_release_metadata.outputs.release_tag || steps.get_latest_release_metadata.outputs.release_var }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
# - name: Docker Run Test Stable Ubuntu Image
# id: docker_run_test_image_stable
# run: |
# docker load --input /tmp/test_image_stable.tar
# mkdir -p /home/runner/work/_temp/tachidesk
# chmod -R 777 /home/runner/work/_temp/tachidesk
# docker run --rm -d -p 127.0.0.1:4568:4567 -v /home/runner/work/_temp/tachidesk:/home/suwayomi/.local/share/Tachidesk --name=test_image_stable test-image:stable
# sleep 15
# cat /home/runner/work/_temp/tachidesk/logfile.log
# curl -s 127.0.0.1:4568/api/v1/settings/about/ && val=$(curl -s 127.0.0.1:4568/api/v1/settings/about/ | grep -o "Tachidesk" | sort --unique)
# if [[ $val == "Tachidesk" ]]; then
# echo ""
# echo "Tachidesk stable ubuntu run successfully"
# echo "value=true" >> $GITHUB_OUTPUT
# docker stop test_image_stable
# else
# echo ""
# echo "Tachidesk stable ubuntu run Failed"
# echo "value=false" >> $GITHUB_OUTPUT
# curl \
# -F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Stable Ubuntu Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
# -F "file1=@/home/runner/work/_temp/tachidesk/logfile.log" \
# "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
# fi
# exit 1
# fi
- name: discord webhook preview
- name: Send a Discord message through the webhook (preview build)
if: ${{ inputs.tachidesk_release_type == 'preview' }}
id: discord_webhook_preview
run: |
curl -H "Content-Type: application/json" -d '{"content": "Docker Preview Image Published!","embeds":[{"color":16729344,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Preview Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/suwayomi/tachidesk:preview","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/suwayomi/tachidesk:preview","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ steps.get_latest_release_metadata.outputs.release_var }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
- name: discord webhook stable
- name: Send a Discord message through the webhook (stable build)
if: ${{ inputs.tachidesk_release_type == 'stable' }}
id: discord_webhook_stable
run: |
curl -H "Content-Type: application/json" -d '{"content": "Docker Stable Image Published!","embeds":[{"color":5409028,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Stable Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/suwayomi/tachidesk:stable","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/suwayomi/tachidesk","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"