diff options
-rw-r--r-- | .github/workflows/buildtrackerjs.yml | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/.github/workflows/buildtrackerjs.yml b/.github/workflows/buildtrackerjs.yml new file mode 100644 index 0000000000..f8c60c6a28 --- /dev/null +++ b/.github/workflows/buildtrackerjs.yml @@ -0,0 +1,82 @@ +name: Build Tracker JS files + +on: + issue_comment: + types: [created] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Detect branch for PR + id: vars + run: | + PR=$( echo "${{ github.event.comment.issue_url }}" | grep -oE 'issues/([0-9]+)$' | cut -d'/' -f 2 ) + + PR_INFO=$( curl \ + --request GET \ + --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ + --header 'content-type: application/json' \ + --url https://api.github.com/repos/$GITHUB_REPOSITORY/pulls/$PR ) + REF=$(echo "${PR_INFO}" | jq -r .head.ref) + BASE=$(echo "${PR_INFO}" | jq -r .base.repo.full_name) + STATE=$(echo "${PR_INFO}" | jq -r .state) + + if [[ $STATE == "closed" ]] + then + echo "Pull Request already closed." + exit 0; + fi + + if [[ $BASE != $GITHUB_REPOSITORY ]] + then + echo "It's only possible to update local branches" + exit 0; + fi + + echo ::set-output name=branch::$REF + - uses: actions/setup-java@v1 + with: + java-version: 9 + if: steps.vars.outputs.branch != '' + - uses: actions/checkout@v2 + with: + ref: ${{ steps.vars.outputs.branch }} + lfs: false + if: steps.vars.outputs.branch != '' + - name: Prepare git config + run: | + cat <<- EOF > $HOME/.netrc + machine github.com + login $GITHUB_ACTOR + password $GITHUB_TOKEN + machine api.github.com + login $GITHUB_ACTOR + password $GITHUB_TOKEN + EOF + chmod 600 $HOME/.netrc + git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" + git config --global user.name "$GITHUB_ACTOR" + if: steps.vars.outputs.branch != '' + - name: Fetch YUICompressor + run: | + cd $GITHUB_WORKSPACE/js + wget https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.zip + unzip yuicompressor-2.4.8.zip + if: steps.vars.outputs.branch != '' + - name: Build JS files + run: | + cd $GITHUB_WORKSPACE/js + sed '/<DEBUG>/,/<\/DEBUG>/d' < piwik.js | sed 's/eval/replacedEvilString/' | java -jar yuicompressor-2.4.8.jar --type js --line-break 1000 | sed 's/replacedEvilString/eval/' | sed 's/^[/][*]/\/*!/' > piwik.min.js && cp piwik.min.js ../piwik.js && cp piwik.min.js ../matomo.js + if: steps.vars.outputs.branch != '' + - name: Push changes + run: | + if [[ $( git diff --numstat ) ]] + then + cd $GITHUB_WORKSPACE + git add piwik.js matomo.js js/piwik.min.js + git commit -m "rebuilt piwik.js" + git push + fi + if: steps.vars.outputs.branch != '' |