build: update icon #87
Workflow file for this run
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
# GitHub Action to build a self contained binary of the Apple TV Python driver | |
--- | |
name: "Build & Release" | |
on: | |
workflow_dispatch: | |
push: | |
tags: | |
- v[0-9]+.[0-9]+.[0-9]+* | |
# pull_request: | |
# branches: | |
# - main | |
# types: [ opened, synchronize, reopened ] | |
env: | |
INTG_NAME: appletv | |
HASH_FILENAME: uc-intg-appletv.hash | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
# We need the integration library, this is temporary until we decide to publish it to pypi | |
- name: Clone integrations library | |
shell: bash | |
run: | | |
git clone https://martonborzak:${{ secrets.PAT }}@github.com/aitatoi/integration-python-library.git | |
ls -lah | |
- name: Prepare | |
run: | | |
sudo apt-get update && sudo apt-get install -y qemu binfmt-support qemu-user-static | |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
docker run --name builder --platform=aarch64 -v ${GITHUB_WORKSPACE}:/io -d ubuntu:focal tail -f /dev/null | |
docker exec builder bash -c "apt-get update && apt-get install -y python3-pip" | |
docker exec builder bash -c "cd /io/integration-python-library && python3 setup.py bdist_wheel && pip3 install -I dist/ucapi-0.0.10-py3-none-any.whl" | |
docker exec builder bash -c "pip3 install pyinstaller -r /io/requirements.txt" | |
docker exec builder bash -c "cd /io && pyinstaller --clean --onefile --name intg-appletv driver.py" | |
- name: Fetch all tags to determine version | |
run: | | |
git fetch origin +refs/tags/*:refs/tags/* | |
echo "VERSION=$(git describe --match "v[0-9]*" --tags HEAD --always)" >> $GITHUB_ENV | |
- name: Add version | |
run: | | |
mkdir -p artifacts | |
cd artifacts | |
echo ${{ env.VERSION }} > version.txt | |
- name: Prepare artifacts | |
shell: bash | |
run: | | |
cp dist/intg-appletv artifacts/ | |
cp driver.json artifacts/ | |
echo "ARTIFACT_NAME=uc-intg-${{ env.INTG_NAME }}-${{ env.VERSION }}-aarch64" >> $GITHUB_ENV | |
- name: Create upload artifact | |
shell: bash | |
run: | | |
tar czvf ${{ env.ARTIFACT_NAME }}.tar.gz -C ${GITHUB_WORKSPACE}/artifacts . | |
ls -lah | |
- uses: actions/upload-artifact@v3 | |
id: upload_artifact | |
with: | |
name: ${{ env.ARTIFACT_NAME }} | |
path: ${{ env.ARTIFACT_NAME }}.tar.gz | |
if-no-files-found: error | |
retention-days: 3 | |
release: | |
name: Create Release | |
if: github.ref == 'refs/heads/main' || contains(github.ref, 'tags/v') | |
runs-on: ubuntu-latest | |
needs: [build] | |
steps: | |
- name: Download build artifacts | |
uses: actions/download-artifact@v3 | |
- name: Extract build archives from downloaded files | |
run: | | |
ls -R | |
# extract tar.gz build archives from downloaded artifacts | |
# (wrapped in tar from actions/upload-artifact, then extracted into a directory by actions/download-artifact) | |
for D in * | |
do if [ -d "${D}" ]; then | |
mv $D/* ./ | |
fi | |
done; | |
# Use a common timestamp for all matrix build artifacts | |
- name: Get timestamp | |
run: | | |
echo "TIMESTAMP=$(date +"%Y%m%d_%H%M%S")" >> $GITHUB_ENV | |
# Add timestamp to development builds | |
- name: Create GitHub development build archives | |
if: "!contains(github.ref, 'tags/v')" | |
run: | | |
# append timestamp | |
for filename in *.tar.gz; do mv $filename "$(basename $filename .tar.gz)-${{ env.TIMESTAMP }}.tar.gz"; done; | |
for filename in *.tar.gz; do echo "sha256 `sha256sum $filename`" >> ${{ env.HASH_FILENAME }}; done; | |
- name: Create Pre-Release | |
uses: "marvinpinto/action-automatic-releases@latest" | |
if: "!contains(github.ref, 'tags/v')" | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
automatic_release_tag: "latest" | |
prerelease: true | |
title: "Development Build" | |
files: | | |
*.tar.gz | |
${{ env.HASH_FILENAME }} | |
- name: Create GitHub release archives | |
if: "contains(github.ref, 'tags/v')" | |
run: | | |
for filename in *.tar.gz; do echo "sha256 `sha256sum $filename`" >> ${{ env.HASH_FILENAME }}; done; | |
- name: Create Release | |
uses: "marvinpinto/action-automatic-releases@latest" | |
if: "contains(github.ref, 'tags/v')" | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
prerelease: false | |
files: | | |
*.tar.gz | |
${{ env.HASH_FILENAME }} |