diff --git a/.github/workflows/ghcr.yml b/.github/workflows/ghcr.yml index 3847792..301af79 100644 --- a/.github/workflows/ghcr.yml +++ b/.github/workflows/ghcr.yml @@ -7,6 +7,7 @@ on: push: tags: - v* + workflow_dispatch: jobs: push-image: @@ -18,20 +19,23 @@ jobs: - uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - name: Set IMAGE_ID - run: echo "IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME" | tr '[A-Z]' '[a-z]' >> $GITHUB_ENV + - name: Set Variables + run: | + IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME + IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') + VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') + [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//') + [ "$VERSION" == "master" ] && VERSION=latest + echo "IMAGE_ID=$IMAGE_ID" >> $GITHUB_ENV + echo "VERSION=$VERSION" >> $GITHUB_ENV + env: + IMAGE_ID: ${{ env.IMAGE_ID }} + VERSION: ${{ env.VERSION }} - name: Build image run: docker buildx build . --platform linux/amd64,linux/arm64 --tag $IMAGE_ID --label "runnumber=${GITHUB_RUN_ID}" --push - name: Log in to registry run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Push image - run: | - VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') - [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//') - [ "$VERSION" == "master" ] && VERSION=latest - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION + run: docker push $IMAGE_ID:$VERSION - name: Clean up Docker images run: docker image prune -f