diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index 8b6a3c956..7b94d57fb 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -1,18 +1,23 @@ name: Build Debian Package on: - release: - types: [published] workflow_dispatch: inputs: + ref: + description: 'GitHub Ref' + required: true + description: 'refs/tags/1.6.16' + semver: + description: 'SemVer String (e.g. 1.7.0-beta1)' + required: true + ppaver: + description: 'Full PPA Version String (e.g. 1.6.16+1.7.0~beta1-0ppa1)' + required: true dput: description: 'Upload to PPA' required: true default: false type: boolean - version: - description: 'Version' - required: false env: JAVA_VERSION: 19 @@ -20,17 +25,22 @@ env: OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/19/openjfx-19_linux-aarch64_bin-jmods.zip' jobs: - get-version: - uses: ./.github/workflows/get-version.yml - with: - version: ${{ github.event.inputs.version }} - build: name: Build Debian Package runs-on: ubuntu-20.04 - needs: [get-version] steps: - uses: actions/checkout@v3 + with: + ref: ${{ github.events.inputs.ref }} + - id: versions + name: Get version information + run: | + SEM_VER_STR="${{ github.events.inputs.semver }}" + SEM_VER_NUM=`echo ${SEM_VER_STR} | sed -E 's/([0-9]+\.[0-9]+\.[0-9]+).*/\1/'` + REVCOUNT=`git rev-list --count HEAD` + echo "semVerStr=${SEM_VER_STR}" >> $GITHUB_OUTPUT + echo "semVerNum=${SEM_VER_NUM}" >> $GITHUB_OUTPUT + echo "revNum=${REVCOUNT}" >> $GITHUB_OUTPUT - name: Install build tools run: | sudo add-apt-repository ppa:coffeelibs/openjdk @@ -42,12 +52,6 @@ jobs: distribution: 'zulu' java-version: ${{ env.JAVA_VERSION }} cache: 'maven' - - id: versions - name: Create PPA version string - run: echo "ppaVerStr=${SEM_VER_STR/-/\~}-${REVCOUNT}" >> $GITHUB_OUTPUT - env: - SEM_VER_STR: ${{ needs.get-version.outputs.semVerStr }} - REVCOUNT: ${{ needs.get-version.outputs.revNum }} - name: Run maven run: mvn -B clean package -Pdependency-check,linux -DskipTests - name: Download OpenJFX jmods @@ -85,7 +89,7 @@ jobs: cp -r jmods pkgdir cp -r dist/linux/common/ pkgdir cp target/cryptomator-*.jar pkgdir/mods - tar -cJf cryptomator_${{ steps.versions.outputs.ppaVerStr }}.orig.tar.xz -C pkgdir . + tar -cJf cryptomator_${{ github.event.inputs.ppaver }}.orig.tar.xz -C pkgdir . - name: Patch and rename pkgdir run: | cp -r dist/linux/debian/ pkgdir @@ -93,12 +97,12 @@ jobs: envsubst '${SEMVER_STR} ${VERSION_NUM} ${REVISION_NUM}' < dist/linux/debian/rules > pkgdir/debian/rules envsubst '${PPA_VERSION} ${RFC2822_TIMESTAMP}' < dist/linux/debian/changelog > pkgdir/debian/changelog find . -name "*.jar" >> pkgdir/debian/source/include-binaries - mv pkgdir cryptomator_${{ steps.versions.outputs.ppaVerStr }} + mv pkgdir cryptomator_${{ github.event.inputs.ppaver }} env: - SEMVER_STR: ${{ needs.get-version.outputs.semVerStr }} - VERSION_NUM: ${{ needs.get-version.outputs.semVerNum }} - REVISION_NUM: ${{ needs.get-version.outputs.revNum }} - PPA_VERSION: ${{ steps.versions.outputs.ppaVerStr }}-0ppa1 + SEMVER_STR: ${{ steps.versions.outputs.semVerStr }} + VERSION_NUM: ${{ steps.versions.outputs.semVerNum }} + REVISION_NUM: ${{ steps.versions.outputs.revNum }} + PPA_VERSION: ${{ github.event.inputs.ppaver }} - name: Prepare GPG-Agent for signing with key 615D449FE6E6A235 run: | echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import @@ -113,7 +117,7 @@ jobs: env: DEBSIGN_PROGRAM: gpg --batch --pinentry-mode loopback DEBSIGN_KEYID: 615D449FE6E6A235 - working-directory: cryptomator_${{ steps.versions.outputs.ppaVerStr }} + working-directory: cryptomator_${{ github.event.inputs.ppaver }} - name: Create detached GPG signatures run: | gpg --batch --quiet --passphrase-fd 0 --pinentry-mode loopback -u 615D449FE6E6A235 --detach-sign -a cryptomator_*_amd64.deb @@ -130,13 +134,21 @@ jobs: cryptomator_*_amd64.deb cryptomator_*.asc - name: Publish on PPA - if: startsWith(github.ref, 'refs/tags/') || inputs.dput + if: inputs.dput run: dput ppa:sebastian-stenzel/cryptomator-beta cryptomator_*_source.changes + + # If ref is a tag, also upload to GitHub Releases: + - name: Determine tag name + if: startsWith(github.events.inputs.ref, 'refs/tags/') + run: | + REF=${{ github.events.inputs.ref }} + echo "TAG_NAME=${REF##*/}" >> $GITHUB_ENV - name: Publish Debian package on GitHub Releases - if: startsWith(github.ref, 'refs/tags/') + if: startsWith(github.events.inputs.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: fail_on_unmatched_files: true + tag_name: ${{ github.env.TAG_NAME }} token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }} files: | cryptomator_*_amd64.deb