Merge branch 'ayufan:master' into publish #8
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: Publish Docker image as release | |
on: | |
push: {} | |
pull_request: {} | |
jobs: | |
build: | |
name: Push Docker image to gchr.io | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set App Version | |
run: | | |
echo "PBS_VERSION=$(cat release-version)" >> $GITHUB_ENV | |
- name: Set Tag Image Name | |
run: | | |
export NEED_IMAGE_PUSH=no | |
export BASE_IMAGE_NAME="ghcr.io/${{ github.repository_owner }}/pve-backup-server" | |
export IS_LATEST_IMAGE=n | |
echo "${GITHUB_REF}" | grep "refs/tags" >/dev/null && export NEED_IMAGE_PUSH=true && export IS_LATEST_IMAGE=y && export TAG_IMAGE_NAME="${BASE_IMAGE_NAME}:release-${GITHUB_REF#refs/*/v}" || true | |
echo "NEED_IMAGE_PUSH=${NEED_IMAGE_PUSH}" >> $GITHUB_ENV | |
echo "TAG_IMAGE_NAME=${TAG_IMAGE_NAME:-}" >> $GITHUB_ENV | |
[ "${IS_LATEST_IMAGE}" = "n" ] || echo "LATEST_IMAGE_NAME=${BASE_IMAGE_NAME}:latest" >> $GITHUB_ENV | |
- name: Set Commit Image Name | |
if: ${{ env.TAG_IMAGE_NAME == '' && env.GITHUB_REF_NAME == 'publish' }} | |
run: | | |
echo "TAG_IMAGE_NAME=${BASE_IMAGE_NAME}:commit-${GITHUB_SHA::8}" >> $GITHUB_ENV | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v1 | |
if: ${{ env.NEED_IMAGE_PUSH == 'true' }} | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.CR_PAT }} | |
- name: build and push | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
file: Dockerfile | |
build-args: | | |
VERSION=${{ env.PBS_VERSION }} | |
push: ${{ env.NEED_IMAGE_PUSH == 'true' }} | |
tags: | | |
${{ env.LATEST_IMAGE_NAME }} | |
${{ env.TAG_IMAGE_NAME }} |