You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
arch-qbittorrentvpn/.github/workflows/workflow-docker-manual.yml

69 lines
2.4 KiB

name: workflow-docker-manual
on:
workflow_dispatch:
inputs:
tags:
description: 'Enter tag name for test/dev image'
default: 'test'
jobs:
gcr-dockerhub-build-publish:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}
- name: Show Runners environment (debug)
uses: nick-invision/retry@v2.4.0
with:
timeout_minutes: 5
max_attempts: 3
retry_wait_seconds: 120
command: |
export
- name: Build Docker image and tag
uses: nick-invision/retry@v2.4.0
with:
timeout_minutes: 60
max_attempts: 3
retry_wait_seconds: 120
command: |
docker build \
--tag ${{ github.repository }}:${{ github.event.inputs.tags }} \
--tag ghcr.io/${{ github.repository }}:${{ github.event.inputs.tags }} \
.
- name: Run Smoke Tests
shell: bash
run: |
git_clone_scripts_dest="/tmp/scripts"
git_clone_scripts_repo="https://github.com/binhex/scripts.git"
git clone "${git_clone_scripts_repo}" "${git_clone_scripts_dest}"
"${git_clone_scripts_dest}/shell/arch/docker/testrunner.sh" --image-name "ghcr.io/${{ github.repository }}:${{ github.event.inputs.tags }}" --host-port '9999' --container-port '8118' --network-type 'bridge' --env-vars '-e VPN_ENABLED=no'
- name: Push Docker image to Docker Hub
uses: nick-invision/retry@v2.4.0
with:
timeout_minutes: 30
max_attempts: 3
retry_wait_seconds: 120
command: |
docker push ${{ github.repository }}:${{ github.event.inputs.tags }}
- name: Push Docker image to GitHub Container Registry (GHCR)
uses: nick-invision/retry@v2.4.0
with:
timeout_minutes: 30
max_attempts: 3
retry_wait_seconds: 120
command: |
docker push ghcr.io/${{ github.repository }}:${{ github.event.inputs.tags }}