diff --git a/.github/workflows/release-check-precondition.yml b/.github/workflows/release-check-precondition.yml new file mode 100644 index 000000000..ae598a3f4 --- /dev/null +++ b/.github/workflows/release-check-precondition.yml @@ -0,0 +1,39 @@ +name: Release check precondition + +on: + push: + branches: + - 'hotfix/**' + - 'release/**' + tags: + - '*' + +jobs: + test: + name: Validate pushed commit to release/hotfix or pushed tag + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Validate POM version + run: | + if [[ $GITHUB_REF =~ refs/heads/(hotfix|release)/[0-9]+\.[0-9]+\.[0-9]+.* ]]; then + SEM_VER_STR=${GITHUB_REF##*/} + elif [[ $GITHUB_REF =~ refs/tags/[0-9]+\.[0-9]+\.[0-9]+.* ]]; then + SEM_VER_STR=${GITHUB_REF##*/} + else + echo "Failed to parse version" + exit 1 + fi + + if ![[ SEM_VER_STR = `mvn help:evaluate -Dexpression=project.version -q -DforceStdout` ]]; then + echo "Version not set in POM" + exit 1 + fi + - name: Validate release in org.cryptomator.Cryptomator.metainfo.xml file + run: | + if ![[ grep "" dist/linux/common/org.cryptomator.Cryptomator.metainfo.xml ]]; then + echo "Release not set in dist/linux/common/org.cryptomator.Cryptomator.metainfo.xml" + exit 1 + fi