New changelog entry: v5.0.1-1 #14
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
name: Create GitHub Release | |
on: | |
workflow_dispatch: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
types: [closed] | |
env: | |
DEB_BUILD_DOCKER_IMAGE: "pitop/pi-top-os-deb-build" | |
DEB_BUILD_DOCKER_BRANCH: "master" | |
PACKAGECLOUD_REPO: "pi-top-os-unstable" | |
OS: "debian" | |
DISTROS: "\"distro\":[\"bookworm\", \"bullseye\"]" | |
HOST_COMPILE: "\"architecture\":[\"amd64\"]" | |
X_COMPILE: "\"architecture\":[\"armhf\", \"arm64\"]" # ARM 32 and 64 bit | |
jobs: | |
check-architecture: | |
runs-on: ubuntu-20.04 | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Determine target architecture | |
id: set-matrix | |
# If any packages define architecture as other than 'all' | |
# then it can't be compiled on host architecture | |
run: | | |
architecture=$HOST_COMPILE | |
if grep '^Architecture:' debian/control | grep -q -v 'all'; then | |
architecture=$X_COMPILE | |
fi | |
echo "matrix={$architecture, $DISTROS}">>$GITHUB_OUTPUT | |
check-versions: | |
runs-on: ubuntu-20.04 | |
outputs: | |
CURRENT_VERSION: ${{ steps.current_version.outputs.CURRENT_VERSION }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Get latest semver tag and latest version in changelog | |
run: | | |
set -x | |
sudo apt update | |
sudo apt install -y --no-install-recommends dpkg-dev npm | |
npm install -g git-latest-semver-tag | |
latest_tag=$(git-latest-semver-tag) | |
changelog_version=$(dpkg-parsechangelog -Sversion) | |
echo "LATEST_TAG=${latest_tag#v}" >> $GITHUB_ENV | |
echo "CURRENT_VERSION=${changelog_version}" >> $GITHUB_ENV | |
- name: Confirm version is higher than last tagged version | |
if: ${{ env.LATEST_TAG != '' }} | |
run: dpkg --compare-versions ${{ env.CURRENT_VERSION }} gt ${{ env.LATEST_TAG }} | |
- name: Set current version as output | |
id: current_version | |
run: | |
echo "CURRENT_VERSION=${{ env.CURRENT_VERSION }}">>"$GITHUB_OUTPUT" | |
release: | |
needs: [check-architecture, check-versions] | |
runs-on: ubuntu-20.04 | |
if: github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged && github.head_ref == 'bump-changelog') | |
strategy: | |
fail-fast: false | |
matrix: ${{fromJSON(needs.check-architecture.outputs.matrix)}} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Patch lintian-overrides | |
if: matrix.distro == 'bullseye' | |
run: | |
cp -r debian/bullseye-overrides/* debian/ || true | |
- name: Build Debian package | |
uses: pi-top/debian-package-build-action@master | |
with: | |
# https://github.com/pi-top/debian-package-build-action/pull/19 | |
# lintian_check_changelog_spelling: false | |
target_architecture: ${{ matrix.architecture }} | |
docker_image: ${{ env.DEB_BUILD_DOCKER_IMAGE }}:${{ matrix.distro }}-${{ env.DEB_BUILD_DOCKER_BRANCH }} | |
signing_key: ${{ secrets.DEB_SIGNING_GPG_KEY }} | |
signing_passphrase: ${{ secrets.DEB_SIGNING_GPG_PASSPHRASE }} | |
build_directory: ./artifacts | |
LINTIAN_SHOW_OVERRIDES: 0 | |
# Optional, repo-specific build environment variables | |
additional_env: | | |
DATA="${{ secrets.DATA }}" | |
TLS_KEY="${{ secrets.CERT_PRIVATE_KEY }}" | |
PYTHON_PACKAGE_VERSION="${{ needs.check-versions.outputs.CURRENT_VERSION }}" | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "dsc" | |
path: "./artifacts" | |
- name: Upload .dsc to PackageCloud | |
uses: pi-top/ghaction-packagecloud@main | |
# Only 1 .dsc is required for source so take armhf if there's multiple | |
if: | | |
( | |
github.ref == 'refs/heads/master' && | |
( | |
matrix.architecture == 'amd64' || | |
matrix.architecture == 'armhf' | |
) | |
) | |
with: | |
repository: ${{ env.PACKAGECLOUD_REPO }}/${{ env.OS }}/${{ matrix.distro }} | |
files: | | |
./artifacts/*.dsc | |
env: | |
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} | |
- name: Upload .deb to PackageCloud | |
uses: pi-top/ghaction-packagecloud@main | |
with: | |
repository: ${{ env.PACKAGECLOUD_REPO }}/${{ env.OS }}/${{ matrix.distro }} | |
files: | | |
./artifacts/*.deb | |
env: | |
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} | |
- name: Install zip | |
uses: montudor/action-zip@v1 | |
- name: Zip distro artifacts | |
run: | | |
ls -l ./artifacts | |
zip ${{ matrix.distro }}-${{ matrix.architecture }}.deb.zip ./artifacts/* | |
- name: Create release and upload package | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.PAT_GITHUB }} | |
file: ./${{ matrix.distro}}-${{ matrix.architecture }}.deb.zip | |
tag: "v${{ needs.check-versions.outputs.CURRENT_VERSION }}" |