- updating imports #60
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: Build GUI (Windows x64) | |
on: | |
pull_request: | |
branches: | |
- master | |
push: | |
branches: | |
- master | |
jobs: | |
build-pornfetch-gui-windows-x64: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Set up Python 3.11 x64 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.11 | |
architecture: x64 | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install virtualenv | |
virtualenv venv | |
.\venv\Scripts\activate | |
pip install -r requirements.txt | |
pip install PySide6 nuitka zstandard | |
- name: Build application for Windows x64 | |
run: | | |
mkdir deploy | |
Get-ChildItem -Path . -Exclude deploy,venv | Move-Item -Destination deploy | |
cd deploy | |
..\venv\Scripts\activate | |
echo "yes" | pyside6-deploy -c src/build/pysidedeploy_windows.spec main.py | |
- name: Archive Windows x64 build | |
uses: actions/upload-artifact@v2 | |
with: | |
name: pyside6-application-windows-x64 | |
path: deploy/main.exe | |
create-release: | |
needs: build-pornfetch-gui-windows-x64 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Install gh CLI | |
run: | | |
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg | |
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg | |
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null | |
sudo apt update | |
sudo apt install gh -y | |
- name: Download Windows x64 artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: pyside6-application-windows-x64 | |
path: ./artifacts | |
- name: List artifacts directory | |
run: ls -R ./artifacts | |
- name: Get short SHA | |
id: vars | |
run: echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV | |
- name: Verify PAT | |
run: | | |
curl -H "Authorization: token ${{ secrets.PAT }}" https://api.github.com/user | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
- name: Check if Release Exists | |
id: check_release | |
run: | | |
if gh release view v${{ secrets.VERSION }}-automated-${{ env.GITHUB_SHA_SHORT }} >/dev/null 2>&1; then | |
echo "RELEASE_EXISTS=true" >> $GITHUB_ENV | |
echo "::set-output name=release_exists::true" | |
else | |
echo "RELEASE_EXISTS=false" >> $GITHUB_ENV | |
echo "::set-output name=release_exists::false" | |
fi | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
- name: Calculate SHA512 for Windows x64 | |
id: sha512_windows_x64 | |
run: | | |
sha512sum ./artifacts/main.exe | awk '{ print $1 }' > sha512_windows_x64.txt | |
echo "sha512_windows_x64=$(cat sha512_windows_x64.txt)" >> $GITHUB_ENV | |
- name: Create GitHub Release | |
id: create_release | |
if: steps.check_release.outputs.release_exists == 'false' | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
SHA512_WINDOWS_X64: ${{ env.sha512_windows_x64 }} | |
with: | |
tag_name: v${{ secrets.VERSION }}-automated-${{ env.GITHUB_SHA_SHORT }} | |
release_name: Automated Release v${{ secrets.VERSION }}-${{ env.GITHUB_SHA_SHORT }} | |
body: | | |
This is an automated release generated by the CI/CD pipeline. | |
SHA512 Checksums: | |
- PornFetch_Windows_GUI_x64: ${{ env.sha512_windows_x64 }} | |
draft: false | |
prerelease: true | |
- name: Get current release body | |
id: get_release_body | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
gh release view v${{ secrets.VERSION }}-automated-${{ env.GITHUB_SHA_SHORT }} --json body --jq .body > current_body.txt || echo "" > current_body.txt | |
- name: Debug - Print current release body | |
run: cat current_body.txt | |
- name: Append new SHA512 hash to release body | |
id: append_release_body | |
run: | | |
echo -e "$(cat current_body.txt)\n- PornFetch_GUI_Windows_x64: ${{ env.sha512_windows_x64 }}" > new_body.txt | |
- name: Debug - Print new release body | |
run: cat new_body.txt | |
- name: Update GitHub release | |
run: | | |
gh release edit v${{ secrets.VERSION }}-automated-${{ env.GITHUB_SHA_SHORT }} --notes "$(cat new_body.txt)" | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
shell: bash | |
- name: Get Release Upload URL | |
id: get_release_url | |
run: | | |
UPLOAD_URL=$(gh release view v${{ secrets.VERSION }}-automated-${{ env.GITHUB_SHA_SHORT }} --json uploadUrl --jq .uploadUrl) | |
echo "UPLOAD_URL=$UPLOAD_URL" >> $GITHUB_ENV | |
echo "::set-output name=upload_url::$UPLOAD_URL" | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
shell: bash | |
- name: Upload Windows x64 artifact to release | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
with: | |
upload_url: ${{ steps.get_release_url.outputs.upload_url }} | |
asset_path: ./artifacts/main.exe | |
asset_name: PornFetch_GUI_Windows_x64.exe | |
asset_content_type: application/octet-stream |