name: Publish on: workflow_dispatch: inputs: version: description: 'Version number' required: true jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Extract version from file id: get_version run: | VERSION=$(cut -d "'" -f2 < pwnagotchi/_version.py) echo "VERSION=$VERSION" >> $GITHUB_ENV - name: Get latest tag uses: actions-ecosystem/action-get-latest-tag@v1 id: get-latest-tag - name: Set LAST_VERSION as an environment variable run: echo "LAST_VERSION=${{ steps.get-latest-tag.outputs.tag }}" >> $GITHUB_ENV - name: Generate release notes id: generate_release_notes run: | COMMITS=$(git log --merges --pretty=format:"* %s" $LAST_VERSION--$VERSION | sed 's/$/\\n/g') CONTRIBUTORS=$(git shortlog -sn $LAST_VERSION--$VERSION | awk '{print "* @" $2}' | sed 's/$/\\n/g') RELEASE_BODY="**Full Changelog**: https://github.com/jayofelony/pwnagotchi/compare/$LAST_VERSION...$VERSION" echo "RELEASE_BODY=$RELEASE_BODY" >> $GITHUB_ENV - name: Install qemu dependencies run: sudo apt update && sudo apt install qemu-user-static qemu-utils xz-utils -y - name: Build img file run: ls -la .; pwd; make all - name: Transfer 32bit.img to docker and give permissions run: sudo chown runner:docker "pwnagotchi-32bit.img" - name: Transfer 64bit.img to docker and give permissions run: sudo chown runner:docker "pwnagotchi-64bit.img" - name: PiShrink run: | wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh chmod +x pishrink.sh sudo mv pishrink.sh /usr/local/bin find /home/runner/work/ -type f -name "*.img" -exec sudo pishrink.sh -aZ {} \; - name: Change name of 32.img.xz to add version run: mv "pwnagotchi-32bit.img.xz" "pwnagotchi-$VERSION-32bit.img.xz" - name: Change name of 64.img.xz to add version run: mv "pwnagotchi-64bit.img.xz" "pwnagotchi-$VERSION-64bit.img.xz" - name: Release uses: softprops/action-gh-release@v1 with: prerelease: true tag_name: v${{ env.VERSION }} name: Pwnagotchi v${{ env.VERSION }} files: | pwnagotchi-${{ env.VERSION }}-32bit.img.xz pwnagotchi-${{ env.VERSION }}-64bit.img.xz body: ${{ env.RELEASE_BODY }}