Skip to content

Ariel

Ariel #247

Workflow file for this run

name: build-release
env:
ai_s3_endpoint: ${{ secrets.AI_S3_ENDPOINT }}
ai_s3_access_key: ${{ secrets.AI_S3_ACCESS_KEY }}
ai_s3_secret_key: ${{ secrets.AI_S3_SECRET_KEY }}
ai_s3_bucket_name: ${{ secrets.AI_S3_BUCKET_NAME }}
on:
push:
tags:
- "*.*.*"
jobs:
build-linux-deb:
runs-on: ubuntu-20.04
steps:
- name: setup python
uses: actions/setup-python@v2
with:
python-version: '3.10'
- name: checkout repository
uses: actions/checkout@v3
- name: configure ai s3 secrets
run: |
echo "endpoint = \"$ai_s3_endpoint\"" >> ./graxpert/s3_secrets.py && \
echo "ro_access_key = \"$ai_s3_access_key\"" >> ./graxpert/s3_secrets.py && \
echo "ro_secret_key = \"$ai_s3_secret_key\"" >> ./graxpert/s3_secrets.py && \
echo "bucket_name = \"$ai_s3_bucket_name\"" >> ./graxpert/s3_secrets.py
- name: install dependencies
run: |
sudo apt install alien -y && \
pip install "cx_freeze>=6.16.0.dev" && \
pip install -r requirements.txt
- name: patch version
run: |
chmod u+x ./releng/patch_version.sh && \
./releng/patch_version.sh
- name: create GraXpert-linux bundle
run: python ./setup.py bdist_deb
- name: store artifacts
uses: actions/upload-artifact@v2
with:
name: graxpert_${{github.ref_name}}-1_amd64.deb
path: ./dist/graxpert_${{github.ref_name}}-1_amd64.deb
retention-days: 5
build-linux-zip:
runs-on: ubuntu-20.04
steps:
- name: setup python
uses: actions/setup-python@v2
with:
python-version: '3.10'
- name: checkout repository
uses: actions/checkout@v3
- name: configure ai s3 secrets
run: |
echo "endpoint = \"$ai_s3_endpoint\"" >> ./graxpert/s3_secrets.py && \
echo "ro_access_key = \"$ai_s3_access_key\"" >> ./graxpert/s3_secrets.py && \
echo "ro_secret_key = \"$ai_s3_secret_key\"" >> ./graxpert/s3_secrets.py && \
echo "bucket_name = \"$ai_s3_bucket_name\"" >> ./graxpert/s3_secrets.py
- name: install dependencies
run: |
pip install setuptools wheel cx_freeze && \
pip install -r requirements.txt
- name: patch version
run: |
chmod u+x ./releng/patch_version.sh && \
./releng/patch_version.sh
- name: create GraXpert-linux bundle
run: python ./setup.py install_exe --install-dir=./dist/GraXpert-linux
- name: zip GraXpert-linux bundle
run: |
cd ./dist && \
zip -r ./GraXpert-linux.zip ./GraXpert-linux
- name: store artifacts
uses: actions/upload-artifact@v2
with:
name: GraXpert-linux.zip
path: ./dist/GraXpert-linux.zip
retention-days: 5
build-windows:
runs-on: windows-latest
steps:
- name: setup python
uses: actions/setup-python@v2
with:
python-version: '3.10'
- name: checkout repository
uses: actions/checkout@v3
- name: configure ai s3 secrets
run: |
$PSDefaultParameterValues['Out-File:Encoding']='UTF8' ; `
"endpoint = `"$env:ai_s3_endpoint`"" | Out-File -Append .\graxpert\s3_secrets.py ; `
"ro_access_key = `"$env:ai_s3_access_key`"" | Out-File -Append .\graxpert\s3_secrets.py ; `
"ro_secret_key = `"$env:ai_s3_secret_key`"" | Out-File -Append .\graxpert\s3_secrets.py ; `
"bucket_name = `"$env:ai_s3_bucket_name`"" | Out-File -Append .\graxpert\s3_secrets.py
- name: install dependencies
run: |
pip install setuptools wheel cx_freeze; `
pip install -r requirements.txt
- name: patch version
run: ./releng/patch_version.ps1
- name: create GraXpert-win64 bundle
run: python ./setup.py bdist_msi
- name: store artifacts
uses: actions/upload-artifact@v2
with:
name: GraXpert-${{github.ref_name}}-win64.msi
path: ./dist/GraXpert-${{github.ref_name}}-win64.msi
retention-days: 5
build-macos-x86_64:
runs-on: macos-11
steps:
- name: checkout repository
uses: actions/checkout@v3
- name: configure ai s3 secrets
run: |
echo "endpoint = \"$ai_s3_endpoint\"" >> ./graxpert/s3_secrets.py && \
echo "ro_access_key = \"$ai_s3_access_key\"" >> ./graxpert/s3_secrets.py && \
echo "ro_secret_key = \"$ai_s3_secret_key\"" >> ./graxpert/s3_secrets.py && \
echo "bucket_name = \"$ai_s3_bucket_name\"" >> ./graxpert/s3_secrets.py
# github actions overwrites brew's python. Force it to reassert itself, by running in a separate step.
- name: unbreak python in github actions
run: |
find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete
sudo rm -rf /Library/Frameworks/Python.framework/
brew install --force python3 && brew unlink python3 && brew unlink python3 && brew link --overwrite python3
- name: install dependencies
run: |
brew install python-tk && \
pip3 install setuptools wheel pyinstaller && \
pip3 install -r requirements.txt
- name: patch version
run: |
chmod u+x ./releng/patch_version.sh && \
./releng/patch_version.sh
- name: create GraXpert-macos-x86_64 bundle
# TODO migrato to cx_freeze
run: |
pyinstaller \
./GraXpert-macos-x86_64.spec
- name: install create-dmg
run: brew install create-dmg
- name: create .dmg
run: |
create-dmg \
--volname "GraXpert-macos-x86_64" \
--window-pos 50 50 \
--window-size 1920 1080 \
--icon-size 100 \
--icon "GraXpert.app" 200 190 \
--app-drop-link 400 190 \
"dist/GraXpert-macos-x86_64.dmg" \
"dist/GraXpert.app/"
- name: store artifacts
uses: actions/upload-artifact@v2
with:
name: GraXpert-macos-x86_64.dmg
path: ./dist/GraXpert-macos-x86_64.dmg
retention-days: 5
release:
runs-on: ubuntu-latest
needs: [build-linux-deb, build-linux-zip, build-windows, build-macos-x86_64]
steps:
- name: download linux deb
uses: actions/download-artifact@v2
with:
name: graxpert_${{github.ref_name}}-1_amd64.deb
- name: download linux zip
uses: actions/download-artifact@v2
with:
name: GraXpert-linux.zip
- name: download windows exe
uses: actions/download-artifact@v2
with:
name: GraXpert-${{github.ref_name}}-win64.msi
- name: download macos artifacts
uses: actions/download-artifact@v2
with:
name: GraXpert-macos-x86_64.dmg
- name: create release
uses: softprops/action-gh-release@v1
with:
files: |
graxpert_${{github.ref_name}}-1_amd64.deb
GraXpert-linux.zip
GraXpert-${{github.ref_name}}-win64.msi
GraXpert-macos-x86_64.dmg