mirror of
https://github.com/darkzoul5/YoutubePlaylistSync.git
synced 2026-07-04 21:04:01 +03:00
AI: Refactor version extraction logic in release workflow to streamline tag handling
This commit is contained in:
@@ -23,21 +23,24 @@ jobs:
|
|||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y unzip zip curl
|
sudo apt install -y unzip zip curl
|
||||||
|
|
||||||
- name: Extract ref name
|
- name: Get version from tag
|
||||||
|
id: version
|
||||||
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
||||||
REF_NAME="${GITHUB_REF#refs/tags/}"
|
VERSION="${{ inputs.tag }}"
|
||||||
elif [[ "$GITHUB_REF" == refs/heads/* ]]; then
|
elif [ "${{ github.event_name }}" = "release" ]; then
|
||||||
REF_NAME="${GITHUB_REF#refs/heads/}"
|
VERSION="${{ github.event.release.tag_name }}"
|
||||||
else
|
else
|
||||||
REF_NAME="unknown"
|
VERSION="${{ github.ref_name }}"
|
||||||
fi
|
fi
|
||||||
echo "TAG=$REF_NAME" >> $GITHUB_ENV
|
VERSION="${VERSION#v}"
|
||||||
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Prepare Windows package
|
- name: Prepare Windows package
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
|
VERSION="${{ steps.version.outputs.version }}"
|
||||||
mkdir -p "$GITHUB_WORKSPACE/dist/windows"
|
mkdir -p "$GITHUB_WORKSPACE/dist/windows"
|
||||||
cp "$GITHUB_WORKSPACE/yt-playlist-main.py" "$GITHUB_WORKSPACE/dist/windows/"
|
cp "$GITHUB_WORKSPACE/yt-playlist-main.py" "$GITHUB_WORKSPACE/dist/windows/"
|
||||||
|
|
||||||
@@ -70,7 +73,7 @@ jobs:
|
|||||||
|
|
||||||
# Create windows archive
|
# Create windows archive
|
||||||
cd "$GITHUB_WORKSPACE/dist/windows"
|
cd "$GITHUB_WORKSPACE/dist/windows"
|
||||||
ZIP_NAME="yt-playlist-windows-${TAG}.zip"
|
ZIP_NAME="yt-playlist-windows-${VERSION}.zip"
|
||||||
zip -r "$GITHUB_WORKSPACE/$ZIP_NAME" *
|
zip -r "$GITHUB_WORKSPACE/$ZIP_NAME" *
|
||||||
echo "ZIP_PATH=$GITHUB_WORKSPACE/$ZIP_NAME" >> $GITHUB_ENV
|
echo "ZIP_PATH=$GITHUB_WORKSPACE/$ZIP_NAME" >> $GITHUB_ENV
|
||||||
|
|
||||||
@@ -94,22 +97,27 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
|
- name: Get version from tag
|
||||||
|
id: version
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
||||||
|
VERSION="${{ inputs.tag }}"
|
||||||
|
elif [ "${{ github.event_name }}" = "release" ]; then
|
||||||
|
VERSION="${{ github.event.release.tag_name }}"
|
||||||
|
else
|
||||||
|
VERSION="${{ github.ref_name }}"
|
||||||
|
fi
|
||||||
|
VERSION="${VERSION#v}"
|
||||||
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y unzip zip curl wget build-essential \
|
sudo apt install -y unzip zip curl wget build-essential \
|
||||||
pkg-config libssl-dev zlib1g-dev
|
pkg-config libssl-dev zlib1g-dev
|
||||||
|
|
||||||
- name: Extract ref name
|
|
||||||
run: |
|
|
||||||
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
|
|
||||||
REF_NAME="${GITHUB_REF#refs/tags/}"
|
|
||||||
elif [[ "$GITHUB_REF" == refs/heads/* ]]; then
|
|
||||||
REF_NAME="${GITHUB_REF#refs/heads/}"
|
|
||||||
else
|
|
||||||
REF_NAME="unknown"
|
|
||||||
fi
|
|
||||||
echo "TAG=$REF_NAME" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Prepare workspace
|
- name: Prepare workspace
|
||||||
run: |
|
run: |
|
||||||
@@ -176,8 +184,9 @@ jobs:
|
|||||||
- name: Archive Linux package
|
- name: Archive Linux package
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
|
VERSION="${{ steps.version.outputs.version }}"
|
||||||
cd "$GITHUB_WORKSPACE/dist/linux"
|
cd "$GITHUB_WORKSPACE/dist/linux"
|
||||||
ZIP_NAME="yt-playlist-linux-${TAG}.tar.gz"
|
ZIP_NAME="yt-playlist-linux-${VERSION}.tar.gz"
|
||||||
tar -czf "$GITHUB_WORKSPACE/$ZIP_NAME" *
|
tar -czf "$GITHUB_WORKSPACE/$ZIP_NAME" *
|
||||||
|
|
||||||
- name: Upload Linux artifact
|
- name: Upload Linux artifact
|
||||||
@@ -196,16 +205,19 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Extract ref name
|
- name: Get version from tag
|
||||||
|
id: version
|
||||||
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
||||||
REF_NAME="${GITHUB_REF#refs/tags/}"
|
VERSION="${{ inputs.tag }}"
|
||||||
elif [[ "$GITHUB_REF" == refs/heads/* ]]; then
|
elif [ "${{ github.event_name }}" = "release" ]; then
|
||||||
REF_NAME="${GITHUB_REF#refs/heads/}"
|
VERSION="${{ github.event.release.tag_name }}"
|
||||||
else
|
else
|
||||||
REF_NAME="unknown"
|
VERSION="${{ github.ref_name }}"
|
||||||
fi
|
fi
|
||||||
echo "TAG=$REF_NAME" >> $GITHUB_ENV
|
VERSION="${VERSION#v}"
|
||||||
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Download linux-zip artifact
|
- name: Download linux-zip artifact
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
@@ -218,13 +230,13 @@ jobs:
|
|||||||
tar -xzf linux-zip/yt-playlist-linux-*.tar.gz -C .
|
tar -xzf linux-zip/yt-playlist-linux-*.tar.gz -C .
|
||||||
|
|
||||||
- name: Build Docker image with release tag
|
- name: Build Docker image with release tag
|
||||||
run: docker build ./ -t ${{ env.REGISTRY_URL }}/${{ github.actor }}/${{ env.IMAGE_NAME }}:${{ env.TAG }}
|
run: docker build ./ -t ${{ env.REGISTRY_URL }}/${{ github.actor }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }}
|
||||||
|
|
||||||
- name: Save Docker image ${TAG} as tar
|
- name: Save Docker image as tar
|
||||||
run: |
|
run: |
|
||||||
docker save -o docker-image.tar ${{ env.REGISTRY_URL }}/${{ github.actor }}/${{ env.IMAGE_NAME }}:${{ env.TAG }}
|
docker save -o docker-image.tar ${{ env.REGISTRY_URL }}/${{ github.actor }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }}
|
||||||
|
|
||||||
- name: Upload docker-image-${TAG} artifact
|
- name: Upload docker-image artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-image
|
name: docker-image
|
||||||
@@ -254,16 +266,19 @@ jobs:
|
|||||||
- name: Download all artifacts
|
- name: Download all artifacts
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
|
|
||||||
- name: Extract ref name
|
- name: Get version from tag
|
||||||
|
id: version
|
||||||
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
||||||
REF_NAME="${GITHUB_REF#refs/tags/}"
|
VERSION="${{ inputs.tag }}"
|
||||||
elif [[ "$GITHUB_REF" == refs/heads/* ]]; then
|
elif [ "${{ github.event_name }}" = "release" ]; then
|
||||||
REF_NAME="${GITHUB_REF#refs/heads/}"
|
VERSION="${{ github.event.release.tag_name }}"
|
||||||
else
|
else
|
||||||
REF_NAME="unknown"
|
VERSION="${{ github.ref_name }}"
|
||||||
fi
|
fi
|
||||||
echo "TAG=$REF_NAME" >> $GITHUB_ENV
|
VERSION="${VERSION#v}"
|
||||||
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Login to the Container registry
|
- name: Login to the Container registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
@@ -278,7 +293,7 @@ jobs:
|
|||||||
docker load -i docker-image/docker-image.tar
|
docker load -i docker-image/docker-image.tar
|
||||||
|
|
||||||
- name: Push Docker image with release tag
|
- name: Push Docker image with release tag
|
||||||
run: docker push ${{ env.REGISTRY_URL }}/${{ github.actor }}/${{ env.IMAGE_NAME }}:${{ env.TAG }}
|
run: docker push ${{ env.REGISTRY_URL }}/${{ github.actor }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }}
|
||||||
|
|
||||||
- name: Load docker image from tar
|
- name: Load docker image from tar
|
||||||
run: |
|
run: |
|
||||||
@@ -294,24 +309,24 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
tag_name: ${{ env.TAG }}
|
tag_name: ${{ steps.version.outputs.version }}
|
||||||
release_name: ${{ env.TAG }}
|
release_name: ${{ steps.version.outputs.version }}
|
||||||
draft: true
|
draft: true
|
||||||
|
|
||||||
- name: Upload Windows release asset
|
- name: Upload Windows release asset
|
||||||
uses: actions/upload-release-asset@v2
|
uses: actions/upload-release-asset@v2
|
||||||
with:
|
with:
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
asset_path: windows-zip/yt-playlist-windows-${{ env.TAG }}.zip
|
asset_path: windows-zip/yt-playlist-windows-${{ steps.version.outputs.version }}.zip
|
||||||
asset_name: yt-playlist-windows-${{ env.TAG }}.zip
|
asset_name: yt-playlist-windows-${{ steps.version.outputs.version }}.zip
|
||||||
asset_content_type: application/zip
|
asset_content_type: application/zip
|
||||||
|
|
||||||
- name: Upload Linux release asset
|
- name: Upload Linux release asset
|
||||||
uses: actions/upload-release-asset@v2
|
uses: actions/upload-release-asset@v2
|
||||||
with:
|
with:
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
asset_path: linux-zip/yt-playlist-linux-${{ env.TAG }}.tar.gz
|
asset_path: linux-zip/yt-playlist-linux-${{ steps.version.outputs.version }}.tar.gz
|
||||||
asset_name: yt-playlist-linux-${{ env.TAG }}.tar.gz
|
asset_name: yt-playlist-linux-${{ steps.version.outputs.version }}.tar.gz
|
||||||
asset_content_type: application/gzip
|
asset_content_type: application/gzip
|
||||||
|
|
||||||
- name: Upload Docker image (release tag)
|
- name: Upload Docker image (release tag)
|
||||||
@@ -319,7 +334,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
asset_path: docker-image/docker-image.tar
|
asset_path: docker-image/docker-image.tar
|
||||||
asset_name: docker-image-${{ env.TAG }}.tar
|
asset_name: docker-image-${{ steps.version.outputs.version }}.tar
|
||||||
asset_content_type: application/x-tar
|
asset_content_type: application/x-tar
|
||||||
|
|
||||||
- name: Upload Docker image (latest)
|
- name: Upload Docker image (latest)
|
||||||
|
|||||||
Reference in New Issue
Block a user