From 06d4ed5f794fdc949dd863edd10766a742e0d722 Mon Sep 17 00:00:00 2001 From: Pk11 Date: Mon, 26 Oct 2020 22:51:14 -0500 Subject: [PATCH] Update actions (#71) * Update Actions * Install tools & don't push releases to TWLBot --- .github/workflows/building.yml | 88 ++++++++++++++++++---------------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/.github/workflows/building.yml b/.github/workflows/building.yml index 9411d31..7c4b687 100644 --- a/.github/workflows/building.yml +++ b/.github/workflows/building.yml @@ -16,18 +16,22 @@ jobs: build: runs-on: ubuntu-latest container: devkitpro/devkitarm - name: "Build with Docker using devkitARM" + name: Build with Docker using devkitARM outputs: commit_tag: ${{ steps.build.outputs.commit_tag }} + commit_hash: ${{ steps.build.outputs.commit_hash }} + author_name: ${{ steps.build.outputs.author_name }} + committer_name: ${{ steps.build.outputs.committer_name }} + commit_subject: ${{ steps.build.outputs.commit_subject }} commit_message: ${{ steps.build.outputs.commit_message }} steps: - - name: "Checkout repo" + - name: Checkout repo uses: actions/checkout@v1 - - name: "Install tools" + - name: Install tools run: | sudo apt-get update sudo apt-get install p7zip-full python -y - - name: "Build & Package GodMode9i" + - name: Build & Package GodMode9i id: build run: | make @@ -37,37 +41,43 @@ jobs: cp GodMode9i.nds GodMode9i/ cp GodMode9i.cia GodMode9i/ 7z a GodMode9i.7z GodMode9i/ - + mkdir -p ~/artifacts cp GodMode9i.7z ~/artifacts - echo "::set-output name=commit_tag::$(git log --format=%h -1)" - echo "::set-output name=commit_message::$(git log --pretty=format:'%an - %s' -1)" - - name: "Publish build to GH Actions" + echo ::set-output name=commit_tag::$(git describe --abbrev=0 --tags) + echo ::set-output name=commit_hash::$(git log --format=%h -1) + + # Webhook info + echo ::set-output name=author_name::$(git log -1 "$GITHUB_SHA" --pretty="%aN") + echo ::set-output name=committer_name::$(git log -1 "$GITHUB_SHA" --pretty="%cN") + echo ::set-output name=commit_subject::$(git log -1 "$GITHUB_SHA" --pretty="%s") + echo ::set-output name=commit_message::$(git log -1 "$GITHUB_SHA" --pretty="%b") + - name: Publish build to GH Actions uses: actions/upload-artifact@v2 with: path: ~/artifacts/* - name: "build" + name: build # Only run this for non-PR jobs. - publish_build_twlbot: + publish_build: runs-on: ubuntu-latest - name: "Publish build to TWLBot/Builds" + name: Publish build to TWLBot/Builds if: ${{ success() && !startsWith(github.ref, 'refs/pull') }} needs: build env: COMMIT_TAG: ${{ needs.build.outputs.commit_tag }} + COMMIT_HASH: ${{ needs.build.outputs.commit_hash }} + AUTHOR_NAME: ${{ needs.build.outputs.author_name }} COMMIT_MESSAGE: ${{ needs.build.outputs.commit_message }} outputs: current_date: ${{ steps.commit.outputs.current_date }} steps: - - name: "Checkout repo" - uses: actions/checkout@v1 - name: Download artifacts uses: actions/download-artifact@v2 with: - name: "build" - path: "build" + name: build + path: build - name: Upload to ${{ github.repository }} release if: ${{ startsWith(github.ref, 'refs/tags') }} run: | @@ -81,27 +91,30 @@ jobs: curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL" done - - name: "Commit and push to TWLBot/Builds" - id: "commit" + - name: Commit and push to TWLBot/Builds + if: ${{ !startsWith(github.ref, 'refs/tags') }} + id: commit run: | CURRENT_DATE=$(date +"%Y%m%d-%H%M%S") - echo "::set-output name=current_date::$CURRENT_DATE" + echo ::set-output name=current_date::$CURRENT_DATE git config --global user.email "flamekat54@aol.com" git config --global user.name "TWLBot" git clone --depth 1 https://${{ secrets.TWLBOT_TOKEN }}@github.com/TWLBot/Builds.git + mkdir -p Builds/extras cd Builds/extras cp ${{ github.workspace }}/build/* . git stage . - git commit -m "GodMode9i | $COMMIT_TAG" + git commit -m "GodMode9i | $COMMIT_HASH" git tag v$CURRENT_DATE - git push origin v$CURRENT_DATE master + git push origin master v$CURRENT_DATE - name: Release to TWLBot/Builds + if: ${{ !startsWith(github.ref, 'refs/tags') }} run: | AUTH_HEADER="Authorization: token ${{ secrets.TWLBOT_TOKEN }}" CONTENT_TYPE="Content-Type: application/json" API_URL="https://api.github.com/repos/TWLBot/Builds/releases" - RELEASE_INFO="{\"tag_name\": \"v${{ steps.commit.outputs.current_date }}\", \"name\": \"GodMode9i | $COMMIT_TAG\", \"body\": \"$COMMIT_MESSAGE\", \"prerelease\": true}" + RELEASE_INFO="{\"tag_name\": \"v${{ steps.commit.outputs.current_date }}\", \"name\": \"GodMode9i | $COMMIT_HASH\", \"body\": \"$AUTHOR_NAME - $COMMIT_MESSAGE\", \"prerelease\": true}" RESPONSE=$(curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_TYPE" "$API_URL" -d "$RELEASE_INFO") @@ -116,33 +129,26 @@ jobs: curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL" done - send_webhook_success: + send_webhook: runs-on: ubuntu-latest - needs: [publish_build_twlbot, build] - name: "Send Discord success webhook" - if: ${{ success() && !startsWith(github.ref, 'refs/pull') }} + needs: [publish_build, build] + name: Send Discord webhook + if: ${{ !startsWith(github.ref, 'refs/pull') }} env: - CURRENT_DATE: ${{ needs.publish_build_twlbot.outputs.current_date }} + CURRENT_DATE: ${{ needs.publish_build.outputs.current_date }} + AUTHOR_NAME: ${{ needs.build.outputs.author_name }} + COMMITTER_NAME: ${{ needs.build.outputs.committer_name }} + COMMIT_SUBJECT: ${{ needs.build.outputs.commit_subject }} + COMMIT_MESSAGE: ${{ needs.build.outputs.commit_message }} steps: - - name: "Checkout repo" - uses: actions/checkout@v1 - - name: "Send success webhook" + - name: Send success webhook + if: ${{ success() }} run: | curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh chmod +x send.sh ./send.sh success ${{ secrets.WEBHOOK_URL }} - - send_webhook_failure: - runs-on: ubuntu-latest - needs: [publish_build_twlbot, build] - name: "Send Discord failure webhook" - if: ${{ failure() && !startsWith(github.ref, 'refs/pull') }} - env: - CURRENT_DATE: ${{ needs.publish_build_twlbot.outputs.current_date }} - steps: - - name: "Checkout repo" - uses: actions/checkout@v1 - - name: "Send failure webhook" + - name: Send failure webhook + if: ${{ failure() }} run: | curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh chmod +x send.sh