99 lines
4.1 KiB
YAML
99 lines
4.1 KiB
YAML
# This workflow will build a release-like distribution when manually dispatched
|
|
|
|
name: Build
|
|
|
|
on: workflow_dispatch
|
|
|
|
jobs:
|
|
# build-release-macos: # LF volunteer
|
|
|
|
build-win-py38: # RCs will still be built and signed by hand
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install python
|
|
uses: actions/setup-python@v3
|
|
with:
|
|
python-version: '3.8'
|
|
- name: Download run-time dependencies
|
|
run: |
|
|
Invoke-WebRequest -Uri https://github.com/alttpo/sni/releases/download/v0.0.79/sni-v0.0.79-windows-amd64.zip -OutFile sni.zip
|
|
Expand-Archive -Path sni.zip -DestinationPath SNI -Force
|
|
Invoke-WebRequest -Uri https://github.com/Ijwu/Enemizer/releases/download/6.4/win-x64.zip -OutFile enemizer.zip
|
|
Expand-Archive -Path enemizer.zip -DestinationPath EnemizerCLI -Force
|
|
- name: Build
|
|
run: |
|
|
python -m pip install --upgrade pip setuptools
|
|
pip install -r requirements.txt
|
|
python setup.py build --yes
|
|
$NAME="$(ls build)".Split('.',2)[1]
|
|
$ZIP_NAME="Archipelago_$NAME.7z"
|
|
echo "ZIP_NAME=$ZIP_NAME" >> $Env:GITHUB_ENV
|
|
New-Item -Path dist -ItemType Directory -Force
|
|
cd build
|
|
Rename-Item exe.$NAME Archipelago
|
|
7z a -mx=9 -mhe=on -ms "../dist/$ZIP_NAME" Archipelago
|
|
- name: Store 7z
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ env.ZIP_NAME }}
|
|
path: dist/${{ env.ZIP_NAME }}
|
|
retention-days: 7 # keep for 7 days, should be enough
|
|
|
|
build-ubuntu1804:
|
|
runs-on: ubuntu-18.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install base dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo apt -y install build-essential p7zip xz-utils wget libglib2.0-0
|
|
sudo apt -y install python3-gi libgirepository1.0-dev # should pull dependencies for gi installation below
|
|
- name: Get a recent python
|
|
uses: actions/setup-python@v3
|
|
with:
|
|
python-version: '3.9'
|
|
- name: Install build-time dependencies
|
|
run: |
|
|
echo "PYTHON=python3.9" >> $GITHUB_ENV
|
|
wget -nv https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage
|
|
chmod a+rx appimagetool-x86_64.AppImage
|
|
./appimagetool-x86_64.AppImage --appimage-extract
|
|
echo -e '#/bin/sh\n./squashfs-root/AppRun "$@"' > appimagetool
|
|
chmod a+rx appimagetool
|
|
- name: Download run-time dependencies
|
|
run: |
|
|
wget -nv https://github.com/black-sliver/sni/releases/download/v0.0.78-2/sni-v0.0.78-2-manylinux2014-amd64.tar.xz
|
|
tar xf sni-*.tar.xz
|
|
rm sni-*.tar.xz
|
|
mv sni-* SNI
|
|
wget -nv https://github.com/Ijwu/Enemizer/releases/download/6.4/ubuntu.16.04-x64.7z
|
|
7za x -oEnemizerCLI/ ubuntu.16.04-x64.7z
|
|
- name: Build
|
|
run: |
|
|
# pygobject is an optional dependency for kivy that's not in requirements
|
|
"${{ env.PYTHON }}" -m pip install --upgrade pip virtualenv PyGObject setuptools
|
|
"${{ env.PYTHON }}" -m venv venv
|
|
source venv/bin/activate
|
|
pip install -r requirements.txt
|
|
python setup.py build --yes bdist_appimage --yes
|
|
echo -e "setup.py build output:\n `ls build`"
|
|
echo -e "setup.py dist output:\n `ls dist`"
|
|
cd dist && export APPIMAGE_NAME="`ls *.AppImage`" && cd ..
|
|
export TAR_NAME="${APPIMAGE_NAME%.AppImage}.tar.gz"
|
|
(cd build && DIR_NAME="`ls | grep exe`" && mv "$DIR_NAME" Archipelago && tar -czvf ../dist/$TAR_NAME Archipelago && mv Archipelago "$DIR_NAME")
|
|
echo "APPIMAGE_NAME=$APPIMAGE_NAME" >> $GITHUB_ENV
|
|
echo "TAR_NAME=$TAR_NAME" >> $GITHUB_ENV
|
|
- name: Store AppImage
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ env.APPIMAGE_NAME }}
|
|
path: dist/${{ env.APPIMAGE_NAME }}
|
|
retention-days: 7
|
|
- name: Store .tar.gz
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ env.TAR_NAME }}
|
|
path: dist/${{ env.TAR_NAME }}
|
|
retention-days: 7
|