Various Build System Improvements (#971)
* Convert workflow from flit to twine for publishing * This could be split into two different tasks * Change build-system toml block to setuptools * Switch to standardized project block * Some corrections * Add build module * Remove symlinks * Move example and profiles folders to archinstall * Create symlinks outside of the archinstall folder * Add new workflow to build archinstall but not publish for regular commits * Add build artifacts * Rename, so it's just archinstall.zip * Replace symlinks with copies * Also replace symlinks with copies in python-build.yml * Revert "Create symlinks outside of the archinstall folder" This reverts commitd76cf18eaa. * Revert "Move example and profiles folders to archinstall" This reverts commitc41c1c9102. * Revert "Remove symlinks" This reverts commitfd959e3230. * Switch up how I'm replacing symlinks with copies * Explore using flit as the build backend still * Drop tools.flit.metadata block * tool.flit.scripts is incompatible with project block * Remove symlink copy workaround * This seems to cause an error, until I figure it out, license is specified in classifiers. * Make authors a list of dicts * URL correction * Use more of the new style metadata for flit * This is redundant; build downloads these in a venv * project.scripts replaces tool.flit.scripts * whitespace * Try explicitly adding symlinks as includes * Minor whitespacce tweaks * Add newer build packages to ISO * Update comment on python-build.yml
This commit is contained in:
parent
c3310d01b7
commit
532f0fdc3a
|
|
@ -38,7 +38,7 @@ jobs:
|
|||
- run: cat /tmp/archlive/airootfs/root/.zprofile
|
||||
- run: pacman -Sy; pacman --noconfirm -S git archiso
|
||||
- run: cp -r /usr/share/archiso/configs/releng/* /tmp/archlive
|
||||
- run: echo -e "git\npython\npython-pip\npython-setuptools" >> /tmp/archlive/packages.x86_64
|
||||
- run: echo -e "git\npython\npython-pip\npython-build\npython-flit\npython-setuptools\npython-wheel" >> /tmp/archlive/packages.x86_64
|
||||
- run: find /tmp/archlive
|
||||
- run: cd /tmp/archlive; mkarchiso -v -w work/ -o out/ ./
|
||||
- uses: actions/upload-artifact@v2
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
# This workflow will build Python packages on every commit.
|
||||
|
||||
name: Build archinstall
|
||||
|
||||
on: [ push, pull_request ]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install build twine
|
||||
- name: Build archinstall
|
||||
run: |
|
||||
python -m build
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: archinstall
|
||||
path: dist/*
|
||||
|
|
@ -21,10 +21,13 @@ jobs:
|
|||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install setuptools wheel flit
|
||||
- name: Build and publish
|
||||
env:
|
||||
FLIT_USERNAME: ${{ secrets.PYPI_USERNAME }}
|
||||
FLIT_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
|
||||
pip install build twine
|
||||
- name: Build archinstall
|
||||
run: |
|
||||
flit publish
|
||||
python -m build
|
||||
- name: Publish archinstall to PyPi
|
||||
env:
|
||||
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
|
||||
run: |
|
||||
twine upload dist/*
|
||||
|
|
|
|||
|
|
@ -1,35 +1,42 @@
|
|||
[build-system]
|
||||
requires = ["flit_core >=2,<4"]
|
||||
requires = ["flit_core >=3.6.0,<4", "setuptools>=45", "wheel"]
|
||||
build-backend = "flit_core.buildapi"
|
||||
|
||||
[tool.flit.metadata]
|
||||
module = "archinstall"
|
||||
author = "Anton Hvornum"
|
||||
author-email = "anton@hvornum.se"
|
||||
home-page = "https://archlinux.org"
|
||||
classifiers = [ "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
[project]
|
||||
name = "archinstall"
|
||||
version = "2.4.0"
|
||||
description = "Arch Linux installer - guided, templates etc."
|
||||
authors = [
|
||||
{name = "Anton Hvornum", email = "anton@hvornum.se"},
|
||||
]
|
||||
description-file = "README.md"
|
||||
requires-python=">=3.8"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
|
||||
[tool.flit.metadata.urls]
|
||||
Source = "https://github.com/archlinux/archinstall"
|
||||
keywords = ["linux", "arch", "archinstall", "installer"]
|
||||
|
||||
classifiers = [
|
||||
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Home = "https://archlinux.org"
|
||||
Documentation = "https://archinstall.readthedocs.io/"
|
||||
Source = "https://github.com/archlinux/archinstall"
|
||||
|
||||
[tool.flit.scripts]
|
||||
[project.scripts]
|
||||
archinstall = "archinstall:run_as_a_module"
|
||||
|
||||
[tool.flit.sdist]
|
||||
include = ["docs/","profiles"]
|
||||
exclude = ["docs/*.html", "docs/_static","docs/*.png","docs/*.psd"]
|
||||
|
||||
[tool.flit.metadata.requires-extra]
|
||||
[project.optional-dependencies]
|
||||
doc = ["sphinx"]
|
||||
|
||||
[tool.flit.sdist]
|
||||
include = ["docs/", "profiles", "examples", "archinstall/profiles", "archinstall/examples"]
|
||||
exclude = ["docs/*.html", "docs/_static", "docs/*.png", "docs/*.psd"]
|
||||
|
||||
[tool.mypy]
|
||||
python_version = "3.10"
|
||||
exclude = "tests"
|
||||
|
|
|
|||
Loading…
Reference in New Issue