From 532f0fdc3a8a2deb655182b4acf946f715f8e636 Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Sat, 12 Feb 2022 16:29:12 -0500 Subject: 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 commit d76cf18eaa9a5916178cda13df3258db678159c8. * Revert "Move example and profiles folders to archinstall" This reverts commit c41c1c9102129970f747a3b532cdf2b426a62a53. * Revert "Remove symlinks" This reverts commit fd959e32305edf4f1c13d90891eb13c6b2d41f79. * 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 --- .github/workflows/iso-build.yaml | 2 +- .github/workflows/python-build.yml | 26 ++++++++++++++++++++++++++ .github/workflows/python-publish.yml | 13 ++++++++----- 3 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/python-build.yml (limited to '.github') diff --git a/.github/workflows/iso-build.yaml b/.github/workflows/iso-build.yaml index d603cdcb..29178ad8 100644 --- a/.github/workflows/iso-build.yaml +++ b/.github/workflows/iso-build.yaml @@ -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 diff --git a/.github/workflows/python-build.yml b/.github/workflows/python-build.yml new file mode 100644 index 00000000..6196f9d8 --- /dev/null +++ b/.github/workflows/python-build.yml @@ -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/* diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index 2a261618..3d0ec253 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -21,10 +21,13 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install setuptools wheel flit - - name: Build and publish + pip install build twine + - name: Build archinstall + run: | + python -m build + - name: Publish archinstall to PyPi env: - FLIT_USERNAME: ${{ secrets.PYPI_USERNAME }} - FLIT_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - flit publish + twine upload dist/* -- cgit v1.2.3-70-g09d2