Update actions (#71)

* Update Actions

* Install tools & don't push releases to TWLBot
This commit is contained in:
Pk11 2020-10-26 22:51:14 -05:00 committed by GitHub
parent 68c06b8687
commit 06d4ed5f79
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -16,18 +16,22 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: devkitpro/devkitarm container: devkitpro/devkitarm
name: "Build with Docker using devkitARM" name: Build with Docker using devkitARM
outputs: outputs:
commit_tag: ${{ steps.build.outputs.commit_tag }} 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 }} commit_message: ${{ steps.build.outputs.commit_message }}
steps: steps:
- name: "Checkout repo" - name: Checkout repo
uses: actions/checkout@v1 uses: actions/checkout@v1
- name: "Install tools" - name: Install tools
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install p7zip-full python -y sudo apt-get install p7zip-full python -y
- name: "Build & Package GodMode9i" - name: Build & Package GodMode9i
id: build id: build
run: | run: |
make make
@ -41,33 +45,39 @@ jobs:
mkdir -p ~/artifacts mkdir -p ~/artifacts
cp GodMode9i.7z ~/artifacts cp GodMode9i.7z ~/artifacts
echo "::set-output name=commit_tag::$(git log --format=%h -1)" echo ::set-output name=commit_tag::$(git describe --abbrev=0 --tags)
echo "::set-output name=commit_message::$(git log --pretty=format:'%an - %s' -1)" echo ::set-output name=commit_hash::$(git log --format=%h -1)
- name: "Publish build to GH Actions"
# 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 uses: actions/upload-artifact@v2
with: with:
path: ~/artifacts/* path: ~/artifacts/*
name: "build" name: build
# Only run this for non-PR jobs. # Only run this for non-PR jobs.
publish_build_twlbot: publish_build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: "Publish build to TWLBot/Builds" name: Publish build to TWLBot/Builds
if: ${{ success() && !startsWith(github.ref, 'refs/pull') }} if: ${{ success() && !startsWith(github.ref, 'refs/pull') }}
needs: build needs: build
env: env:
COMMIT_TAG: ${{ needs.build.outputs.commit_tag }} 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 }} COMMIT_MESSAGE: ${{ needs.build.outputs.commit_message }}
outputs: outputs:
current_date: ${{ steps.commit.outputs.current_date }} current_date: ${{ steps.commit.outputs.current_date }}
steps: steps:
- name: "Checkout repo"
uses: actions/checkout@v1
- name: Download artifacts - name: Download artifacts
uses: actions/download-artifact@v2 uses: actions/download-artifact@v2
with: with:
name: "build" name: build
path: "build" path: build
- name: Upload to ${{ github.repository }} release - name: Upload to ${{ github.repository }} release
if: ${{ startsWith(github.ref, 'refs/tags') }} if: ${{ startsWith(github.ref, 'refs/tags') }}
run: | run: |
@ -81,27 +91,30 @@ jobs:
curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL" curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL"
done done
- name: "Commit and push to TWLBot/Builds" - name: Commit and push to TWLBot/Builds
id: "commit" if: ${{ !startsWith(github.ref, 'refs/tags') }}
id: commit
run: | run: |
CURRENT_DATE=$(date +"%Y%m%d-%H%M%S") 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.email "flamekat54@aol.com"
git config --global user.name "TWLBot" git config --global user.name "TWLBot"
git clone --depth 1 https://${{ secrets.TWLBOT_TOKEN }}@github.com/TWLBot/Builds.git git clone --depth 1 https://${{ secrets.TWLBOT_TOKEN }}@github.com/TWLBot/Builds.git
mkdir -p Builds/extras
cd Builds/extras cd Builds/extras
cp ${{ github.workspace }}/build/* . cp ${{ github.workspace }}/build/* .
git stage . git stage .
git commit -m "GodMode9i | $COMMIT_TAG" git commit -m "GodMode9i | $COMMIT_HASH"
git tag v$CURRENT_DATE git tag v$CURRENT_DATE
git push origin v$CURRENT_DATE master git push origin master v$CURRENT_DATE
- name: Release to TWLBot/Builds - name: Release to TWLBot/Builds
if: ${{ !startsWith(github.ref, 'refs/tags') }}
run: | run: |
AUTH_HEADER="Authorization: token ${{ secrets.TWLBOT_TOKEN }}" AUTH_HEADER="Authorization: token ${{ secrets.TWLBOT_TOKEN }}"
CONTENT_TYPE="Content-Type: application/json" CONTENT_TYPE="Content-Type: application/json"
API_URL="https://api.github.com/repos/TWLBot/Builds/releases" 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") 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" curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL"
done done
send_webhook_success: send_webhook:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [publish_build_twlbot, build] needs: [publish_build, build]
name: "Send Discord success webhook" name: Send Discord webhook
if: ${{ success() && !startsWith(github.ref, 'refs/pull') }} if: ${{ !startsWith(github.ref, 'refs/pull') }}
env: 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: steps:
- name: "Checkout repo" - name: Send success webhook
uses: actions/checkout@v1 if: ${{ success() }}
- name: "Send success webhook"
run: | run: |
curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh
chmod +x send.sh chmod +x send.sh
./send.sh success ${{ secrets.WEBHOOK_URL }} ./send.sh success ${{ secrets.WEBHOOK_URL }}
- name: Send failure webhook
send_webhook_failure: if: ${{ 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"
run: | run: |
curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh
chmod +x send.sh chmod +x send.sh