0
0
mirror of https://github.com/TrianguloY/UrlChecker.git synced 2024-09-19 20:02:16 +02:00

Update actions/upload-artifact to v4

And simplified the action logic (we don't need two different actions anymore!)
This commit is contained in:
TrianguloY 2024-01-29 17:31:32 +01:00
parent 56aa53fdba
commit 81b5b7e1c3
2 changed files with 44 additions and 68 deletions

View File

@ -1,57 +0,0 @@
# This action will send a comment to the pr for download the built apk.
# Needs to be as a separate action, artifacts are not available on the action used to upload them
name: Comment Artifact URL on PR
on:
workflow_run:
workflows:
- "Validate gradle build test"
types:
- "completed"
permissions:
actions: read # need to read the artifacts url
pull-requests: write # need to write the comment
jobs:
comment-on-pr:
if: github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
steps:
- name: Post url to artifact
env:
GITHUB_TOKEN: ${{ github.token }}
OWNER: ${{ github.repository_owner }}
REPO: ${{ github.event.repository.name }}
CURRENT_JOB_ID: ${{ github.run_id }}
PREVIOUS_JOB_ID: ${{ github.event.workflow_run.id }}
PREVIOUS_SUITE_ID: ${{ github.event.workflow_run.check_suite_id }}
run: |
# get artifacts
read PR_NUMBER ARTIFACT_ID EXPIRES_AT <<< $(gh api "/repos/$OWNER/$REPO/actions/runs/$PREVIOUS_JOB_ID/artifacts" --jq '"\(.artifacts[0].name) \(.artifacts[1].id) \(.artifacts[1].expires_at)"')
if [ "$ARTIFACT_ID" == "null" ]; then
echo "No artifacts, (probably) not a PR, exiting"
exit
fi
echo "PR NUMBER: $PR_NUMBER"
echo "ARTIFACT ID: $ARTIFACT_ID"
echo "EXPIRES_AT: $EXPIRES_AT"
# post link comment
gh api "/repos/$OWNER/$REPO/issues/$PR_NUMBER/comments" -F body=@- <<EOF
This PR builds correctly, here is the generated apk.
This unsigned version can be installed alongside the original app and should only be used for testing the changes, not for daily usage.
| [Download testing apk](https://github.com/$OWNER/$REPO/suites/$PREVIOUS_SUITE_ID/artifacts/$ARTIFACT_ID) |
| - |
You must be logged in for the link to work.
The link will expire at $EXPIRES_AT.
<hr>
<sub>This is an automatic comment created by a [Github Action](https://github.com/$OWNER/$REPO/actions/runs/$CURRENT_JOB_ID)</sub>
EOF

View File

@ -1,5 +1,5 @@
# This actions validates the gradle files and runs a build test to ensure the app is not corrupted
# if succeeded and the source is a pull request, builds an evaluation apk
# if succeeded, and the source is a pull request, builds an evaluation apk and posts a comment to download it
name: Validate gradle build test
on:
@ -14,6 +14,16 @@ on:
env:
VARIANT: evaluation
NAME: URLCheck_evaluation.apk
DAYS: 14
permissions:
contents: read # to checkout the repo
pull-requests: write # to write the comment
# this will cancel running actions if a newer commit is added to the pr
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
@ -44,25 +54,48 @@ jobs:
# the following steps will only run for PRs
- name: Generate apk
- name: "[PR] Generate apk"
if: ${{ github.event_name == 'pull_request' }}
uses: gradle/gradle-build-action@v3
with:
arguments: >
assemble${{ env.VARIANT }}
- name: Upload apk as artifact
- name: "[PR] Upload apk as artifact"
if: ${{ github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v3
id: upload-artifact-step
uses: actions/upload-artifact@v4
with:
path: ./app/build/outputs/apk/${{ env.VARIANT }}/app-${{ env.VARIANT }}.apk
name: ${{ env.NAME }}
retention-days: 14
retention-days: ${{ env.DAYS }}
- name: Upload PR id as artifact
- name: "[PR] Comment url to artifact"
if: ${{ github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v3
with:
path: /dev/null
name: ${{ github.event.number }}
retention-days: 1
env:
GH_TOKEN: ${{ github.token }}
PR: ${{ github.event.pull_request.number }}
ARTIFACT: ${{ steps.upload-artifact-step.outputs.artifact-url }}
ACTION: "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}?pr=${{ github.event.pull_request.number }}"
run: |
# calculate expiration date
EXPIRATION=$(date -d "+$DAYS days")
echo "EXPIRATION=$EXPIRATION"
# post link comment
gh pr comment $PR -F - <<EOF
This PR builds correctly, here is the generated apk.
This unsigned version can be installed alongside the original app and should only be used for testing the changes, not for daily usage.
| [Download testing apk]($ARTIFACT) |
| - |
You must be logged in for the link to work.
The link will expire in $DAYS days, at $EXPIRATION.
<hr>
<sub>This is an automatic comment created by a [Github Action]($ACTION)</sub>
EOF