diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 412e7bb..f6f7dd2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,20 +11,24 @@ on: jobs: build: runs-on: ubuntu-latest - container: devkitpro/devkitarm:20200730 - name: "Build with Docker using devKitARM r55" + container: devkitpro/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 with: submodules: recursive - - name: "Install tools" + - name: Install tools run: | sudo apt-get update - sudo apt-get install p7zip-full qrencode -y + sudo apt-get install p7zip-full -y curl -L https://github.com/Steveice10/bannertool/releases/download/1.1.0/bannertool.zip -o bannertool.zip sudo 7z e bannertool.zip linux-x86_64/bannertool @@ -36,41 +40,57 @@ jobs: sudo chmod +x makerom mv makerom /usr/local/bin rm makerom-v0.17-ubuntu_x86_64.zip - - name: "Build & Prepare TWiLight Menu++ Updater" + - name: Build id: build run: | make mkdir -p ~/artifacts cp TWiLight_Menu++_Updater.3dsx ~/artifacts cp TWiLight_Menu++_Updater.cia ~/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: Fix release file names + if: ${{ startsWith(github.ref, 'refs/tags') }} + run: | + cd ~/artifacts + mv TWiLight_Menu++_Updater.3dsx TWiLightMenu-Updater.3dsx + mv TWiLight_Menu++_Updater.cia TWiLightMenu-Updater.cia + - 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" + 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 }} - twlbot_commit: ${{ steps.commit.outputs.twlbot_commit }} steps: - - name: "Checkout repo" - uses: actions/checkout@v1 + - name: Install tools + run: | + sudo apt-get update + sudo apt-get install qrencode -y - 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: | @@ -84,71 +104,65 @@ jobs: curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL" done - - name: "Commit and push to TWLBot" - id: "commit" + - name: Commit and push to TWLBot/Builds + 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 - cd Builds/TWiLightMenu\ Updater/ + mkdir -p Builds/TWiLightMenu-Updater + cd Builds/TWiLightMenu-Updater + qrencode -o TWiLight_Menu++_Updater.png https://github.com/TWLBot/Builds/raw/v$CURRENT_DATE/TWiLightMenu%20Updater/TWiLight_Menu++_Updater.cia + qrencode -o TWiLight_Menu++_Updater-release.png https://github.com/${{ github.repository }}/releases/download/$COMMIT_TAG/TWiLightMenu-Updater.cia cp ${{ github.workspace }}/build/* . git stage . - git commit -m "TWiLight Menu++ Updater | $COMMIT_TAG" + git commit -m "TWiLightMenu-Updater | $COMMIT_HASH" git tag v$CURRENT_DATE git push origin master v$CURRENT_DATE - echo "::set-output name=twlbot_commit::$(git log --format=%H -1)" - name: Release to TWLBot/Builds 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\": \"TWiLight Menu++ Updater | $COMMIT_TAG\", \"body\": \"$COMMIT_MESSAGE\", \"prerelease\": true}" + RELEASE_INFO="{\"tag_name\": \"v${{ steps.commit.outputs.current_date }}\", \"name\": \"TWiLightMenu-Updater | $COMMIT_HASH\", \"body\": \"$AUTHOR_NAME - $COMMIT_MESSAGE\", \"prerelease\": true}" + RESPONSE=$(curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_TYPE" "$API_URL" -d "$RELEASE_INFO") + ID=$(echo $RESPONSE | jq --raw-output '.id') + for file in ${{ github.workspace }}/build/*; do AUTH_HEADER="Authorization: token ${{ secrets.TWLBOT_TOKEN }}" CONTENT_LENGTH="Content-Length: $(stat -c%s $file)" CONTENT_TYPE="Content-Type: application/7z-x-compressed" UPLOAD_URL="https://uploads.github.com/repos/TWLBot/Builds/releases/$ID/assets?name=$(basename $file)" + 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: - COMMIT_TAG: ${{ needs.build.outputs.commite_tag }} + 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 }} - CURRENT_DATE: ${{ needs.publish_build_twlbot.outputs.current_date }} - TWLBOT_COMMIT: ${{ needs.publish_build_twlbot.outputs.twlbot_commit }} 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 + export IMAGE=https://raw.githubusercontent.com/TWLBot/Builds/v$CURRENT_DATE/builds/TWiLightMenu%20Updater/TWiLight_Menu++_Updater.png ./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: - COMMIT_TAG: ${{ needs.build.outputs.commite_tag }} - COMMIT_MESSAGE: ${{ needs.build.outputs.commit_message }} - CURRENT_DATE: ${{ needs.publish_build_twlbot.outputs.current_date }} - TWLBOT_COMMIT: ${{ needs.publish_build_twlbot.outputs.twlbot_commit }} - 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 diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index f042939..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,98 +0,0 @@ -trigger: - branches: - include: ['*'] - tags: - include: ['*'] - -name: $[format('{0:yyyyMMdd\-HHmmss}', pipeline.startTime)] - -pool: - vmImage: 'Ubuntu-16.04' - -variables: - CURRENT_DATE: $[format('{0:yyyyMMdd\-HHmmss}', pipeline.startTime)] - REPOSITORY_NAME: $(Build.Repository.Name) - COMMIT_TAG: $(git log --format=%h -1) - -steps: -- script: | - curl -L https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb -o pacman.deb - sudo apt update - sudo apt install p7zip-full haveged - sudo dpkg -i pacman.deb - sudo dkp-pacman -Sy - sudo dkp-pacman -S 3ds-dev 3ds-curl 3ds-libarchive 3ds-liblzma 3ds-mbedtls 3ds-bzip2 3ds-zlib --noconfirm - curl -L https://github.com/Steveice10/bannertool/releases/download/1.1.0/bannertool.zip -o bannertool.zip - sudo 7z e bannertool.zip linux-x86_64/bannertool - sudo chmod +x bannertool - rm bannertool.zip - curl -L https://github.com/profi200/Project_CTR/releases/download/0.15/makerom_015_ctrtool.zip -o makerom_015_ctrtool.zip - sudo 7z e makerom_015_ctrtool.zip Linux_x86_64/makerom - sudo chmod +x makerom - rm makerom_015_ctrtool.zip - git submodule update --init --recursive - displayName: 'Setup devkitPro' - -- script: | - export PATH=$PATH:$(pwd) - export DEVKITPRO="/opt/devkitpro" - export DEVKITARM="/opt/devkitpro/devkitARM" - make - echo '##vso[task.setvariable variable=COMMIT_TAG]'$(git log --format=%h -1) - echo '##vso[task.setvariable variable=COMMIT_MESSAGE]'$(git log --pretty=format:"%an - %s" -1) - displayName: 'Build TWiLightMenu-Updater' - -- script: | - git config --global user.email "flamekat54@aol.com" - git config --global user.name "TWLBot" - git clone --depth 1 https://$GITHUB_TOKEN@github.com/TWLBot/Builds.git - cd Builds/TWiLightMenu\ Updater/ - cp ../../TWiLight_Menu++_Updater.3dsx TWiLight_Menu++_Updater.3dsx - cp ../../TWiLight_Menu++_Updater.cia TWiLight_Menu++_Updater.cia - git stage . - git commit -m "TWiLightMenu-Updater | $(COMMIT_TAG)" - git push origin master - git tag v$CURRENT_DATE - echo '##vso[task.setvariable variable=TWLBOT_COMMIT]'$(git log -1 --format="%H") - displayName: "Commit to TWLBot/Builds" - -- task: GitHubRelease@0 - displayName: "Release to TWLBot/Builds" - inputs: - gitHubConnection: TWLBot - repositoryName: TWLBot/Builds - action: create - target: $(TWLBOT_COMMIT) - tagSource: 'manual' - tag: v$(CURRENT_DATE) - title: TWiLightMenu-Updater | $(COMMIT_TAG) - releaseNotesSource: input - releaseNotes: $(COMMIT_MESSAGE) - assets: '$(Build.ArtifactStagingDirectory)/*' - isPreRelease: true - addChangeLog: false - -- task: GitHubRelease@0 - displayName: "Release to RocketRobz/TWiLightMenu-Updater" - condition: startsWith(variables['Build.SourceBranchName'], 'v') - inputs: - gitHubConnection: TWLBot - repositoryName: RocketRobz/TWiLightMenu-Updater - action: edit - target: '$(Build.SourceVersion)' - tag: $(Build.SourceBranchName) - assets: '$(Build.ArtifactStagingDirectory)/*' - -- script: | - curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-azure.sh - chmod +x send.sh - ./send.sh success $WEBHOOK_URL - condition: succeeded() - displayName: 'Send success webhook' - -- script: | - curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-azure.sh - chmod +x send.sh - ./send.sh failure $WEBHOOK_URL - condition: failed() - displayName: 'Send failure webhook' \ No newline at end of file