From 2eec050163b246d38c0faf9bd10c0cf1b5833c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Jona=C5=A1?= Date: Mon, 19 Jul 2021 16:45:29 +0200 Subject: [PATCH] feat: switch to tagless workflow success check (#2) --- .github/assets/nx-logo.png | Bin 0 -> 29259 bytes .github/assets/nx.png | Bin 0 -> 109061 bytes .gitignore | 53 ++++++++++++ LICENSE | 22 +++++ README.md | 74 +++++++++++++--- action.yml | 25 +++--- find-successful-workflow.js | 69 +++++++++++++++ package-lock.json | 166 ++++++++++++++++++++++++++++++++++++ package.json | 8 +- run.sh | 37 ++++---- 10 files changed, 406 insertions(+), 48 deletions(-) create mode 100644 .github/assets/nx-logo.png create mode 100644 .github/assets/nx.png create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 find-successful-workflow.js create mode 100644 package-lock.json diff --git a/.github/assets/nx-logo.png b/.github/assets/nx-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..30b58dadd3bfc4a1196c722862a3fccbc00ddd57 GIT binary patch literal 29259 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℘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 literal 0 HcmV?d00001 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9a734df --- /dev/null +++ b/.gitignore @@ -0,0 +1,53 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* + +# Unplanned lock files +yarn.lock +pnpm-lock.yml + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Dependency directories +node_modules/ +jspm_packages/ + +# Compiled files +dist +tmp + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Yarn Integrity file +.yarn-integrity + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# IDE +.idea +.vscode + +.DS_Store \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0d99a10 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2021-present Narwhal Technologies Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 2ddfde8..7492024 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,16 @@ -# nx-set-shas +

Nx - Smart, Extensible Build Framework

+ +

Set SHAs Action

+ +> ✨ A Github Action which sets the base and head SHAs required for `nx affected` commands in CI + +- [Example Usage](#example-usage) +- [Configuration Options](#configuration-options) +- [Background](#background) +- [License](#license) + +> This documentation is for version 2.x.x. You can find documentation for version 1.x.x [here](https://github.com/nrwl/nx-set-shas/blob/c8f5a54f6ee7f2127f3df063f36a0242faee4cb7/README.md). ## Example Usage @@ -25,7 +37,7 @@ jobs: # OPTION 1) Environment variables # =========================================================================== - name: Derive appropriate SHAs for base and head for `nx affected` commands - uses: nrwl/nx-set-shas@v1 + uses: nrwl/nx-set-shas@v2 - run: | echo "BASE: ${{ env.NX_BASE }}" @@ -36,7 +48,9 @@ jobs: # =========================================================================== - name: Derive appropriate SHAs for base and head for `nx affected` commands id: setSHAs - uses: nrwl/nx-set-shas@v1 + uses: nrwl/nx-set-shas@v2 + with: + set-environment-variables-for-job: 'false' - run: | echo "BASE: ${{ steps.setSHAs.outputs.base }}" @@ -58,22 +72,54 @@ jobs: # Default: main main-branch-name: '' - # The glob(7) pattern to be provided to `git describe --match` in order to match against - # the latest relevant tag on the specified "main" branch. - # - # The default pattern aligns with the default behavior of the complementary `nrwl/nx-tag-successful-ci-run` action. - # - # Default: nx_successful_ci_run* - tag-match-pattern: '' - # Applies the derived SHAs for base and head as NX_BASE and NX_HEAD environment variables within the current Job. # # Default: true set-environment-variables-for-job: '' - # By default, if no matching tags are found on the main branch to determine the SHA, we will log a warning and use HEAD~1. Enable this option to error and exit instead. + # By default, if no successful workflow run is found on the main branch to determine the SHA, we will log a warning and use HEAD~1. Enable this option to error and exit instead. # # Default: false - error-on-no-matching-tags: '' + error-on-no-successful-workflow: '' + + # The ID of the github action workflow to check for successful run or the name of the file name containing the workflow. + # E.g. 'ci.yml'. If not provided, current workflow id will be used + # + workflow-id: '' ``` - \ No newline at end of file + + +## Background + +When we run `affected` command on [Nx](https://nx.dev/), we can specify 2 git history positions - base and head, and it calculates [which projects in your repository changed +between those 2 commits](https://nx.dev/latest/angular/tutorial/11-test-affected-projects#step-11-test-affected-projects +). We can then run a set of tasks (like building or linting) only on those **affected** projects. + +This makes it easy to set-up a CI system that scales well with the continous growth of your repository, as you add more and more projects. + + +### Problem + +Figuring out what these two git commits are might not be as simple as it seems. + +On a CI system that runs on submitted PRs, we determine what commits to include in the **affected** calculation by comparing our `HEAD-commit-of-PR-branch` to the commit in main branch (`master` or `main` usually) from which the PR branch originated. This will ensure the entirety of our PR is always being tested. + +But what if we want to set up a continuous deployment system +that, as changes get pushed to `master`, it builds and deploys +only the affected projects? + +What are the `FROM` and `TO` commits in that case? + +Conceptually, what we want is to use the absolute latest commit on the `master` branch as the HEAD, and the previous _successful_ commit on `master` as the BASE. Note, we want the previous _successful_ one because it is still possible for commits on the `master` branch to fail for a variety of reasons. + +The commits therefore can't just be `HEAD` and `HEAD~1`. If a few deployments fail one after another, that means that we're accumulating a list of affected projects that are not getting deployed. Anytime we retry the deployment, we want to include **every commit since the last time we deployed successfully**. That way we ensure we don't accidentally skip deploying a project that has changed. + +This action enables you to find: +* Commit SHA from which PR originated (in the case of `pull_request`) +* Commit SHA of the last successful CI run + +## License + +[MIT](http://opensource.org/licenses/MIT) + +Copyright (c) 2021-present Narwhal Technologies Inc. diff --git a/action.yml b/action.yml index 6b3b088..81cc879 100644 --- a/action.yml +++ b/action.yml @@ -1,18 +1,17 @@ -name: 'Nx set SHAs' -description: 'Derives appropriate SHAs for base and head for use in `nx affected` commands, optionally setting them as environment variables for the current job' +name: "Nx set SHAs" +description: "Derives appropriate SHAs for base and head for use in `nx affected` commands, optionally setting them as environment variables for the current job" inputs: main-branch-name: - description: 'The name of the main branch in your repo, used as the target of PRs. E.g. main, master etc' - default: 'main' - tag-match-pattern: - description: 'The glob(7) pattern to be provided to `git describe --match` in order to match against the latest relevant tag on the specified main branch' - default: 'nx_successful_ci_run*' + description: "The name of the main branch in your repo, used as the target of PRs. E.g. main, master etc" + default: "main" set-environment-variables-for-job: - description: 'Applies the derived SHAs for base and head as NX_BASE and NX_HEAD environment variables within the current Job' - default: 'true' - error-on-no-matching-tags: - description: 'By default, if no matching tags are found on the main branch to determine the SHA, we will log a warning and use HEAD~1. Enable this option to error and exit instead.' + description: "Applies the derived SHAs for base and head as NX_BASE and NX_HEAD environment variables within the current Job" + default: "true" + error-on-no-successful-workflow: + description: "By default, if no successful workflow is found on the main branch to determine the SHA, we will log a warning and use HEAD~1. Enable this option to error and exit instead." + workflow-id: + description: "The ID of the workflow to track or name of the file name. E.g. ci.yml. Defaults to current workflow" outputs: base: @@ -23,12 +22,12 @@ outputs: value: ${{ steps.setSHAs.outputs.head }} runs: - using: 'composite' + using: "composite" steps: - name: Set base and head SHAs used for nx affected id: setSHAs shell: bash - run: ${{ github.action_path }}/run.sh '${{ github.event_name }}' '${{ inputs.main-branch-name }}' '${{ inputs.tag-match-pattern }}' '${{ inputs.error-on-no-matching-tags }}' + run: ${{ github.action_path }}/run.sh ${{ github.token }} ${{ github.event_name }} ${{ inputs.main-branch-name }} ${{ inputs.error-on-no-successful-workflow }} ${{ inputs.workflow-id }} - name: Log base and head SHAs used for nx affected shell: bash diff --git a/find-successful-workflow.js b/find-successful-workflow.js new file mode 100644 index 0000000..c3c7d99 --- /dev/null +++ b/find-successful-workflow.js @@ -0,0 +1,69 @@ +const { Octokit } = require("@octokit/action"); +const core = require("@actions/core"); +const { execSync } = require('child_process'); + +const token = process.argv[2]; +const branch = process.argv[3]; +const workflowId = process.argv[4]; +const [owner, repo] = process.env.GITHUB_REPOSITORY.split("/"); +const run_id = process.env.GITHUB_RUN_ID; +process.env.GITHUB_TOKEN = token; + +(async () => { + try { + const octokit = new Octokit(); + let workflow_id = workflowId; + if (!workflow_id) { + // retrieve workflow-id + workflow_id = await octokit.request(`GET /repos/${owner}/${repo}/actions/runs/${run_id}`, { + owner, + repo, + branch, + run_id + }).then(({ data: { workflow_id } }) => workflow_id); + } + // fetch all workflow runs on a given repo/branch/workflow with push and success + const shas = await octokit.request(`GET /repos/${owner}/${repo}/actions/workflows/${workflow_id}/runs`, { + owner, + repo, + branch, + workflow_id, + event: 'push', + status: 'success' + }).then(({ data: { workflow_runs } }) => workflow_runs.map(run => run.head_sha)); + + const sha = await findExistingCommit(shas); + console.log(sha); + } catch (e) { + core.setFailed(e.message); + process.exit(1); + } +})(); + +/** + * Get first existing commit + * @param {string[]} commit_shas + * @returns {string?} + */ +async function findExistingCommit(shas) { + for (const commitSha of shas) { + if (await commitExists(commitSha)) { + return commitSha; + } + } + return undefined; +} + +/** + * Check if given commit is valid + * @param {string} commitSha + * @returns {boolean} + */ +async function commitExists(commitSha) { + try { + execSync(`git cat-file -e ${commitSha} 2> /dev/null`); + return true; + } catch { + return false; + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..17af975 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,166 @@ +{ + "version": "2.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@actions/core": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.4.0.tgz", + "integrity": "sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg==" + }, + "@octokit/action": { + "version": "3.10.10", + "resolved": "https://registry.npmjs.org/@octokit/action/-/action-3.10.10.tgz", + "integrity": "sha512-Fga+87chJ0e9V3JRJxkibwtm85nnOA8G+RO5YgG8DJMrFKvSqkGuQy9rHxUhM/5Yu3gVnCOQc/oe5dP/fna/cg==", + "requires": { + "@octokit/auth-action": "^1.2.0", + "@octokit/core": "^3.0.0", + "@octokit/plugin-paginate-rest": "^2.2.4", + "@octokit/plugin-rest-endpoint-methods": "5.4.1", + "@octokit/types": "^6.16.1" + } + }, + "@octokit/auth-action": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-action/-/auth-action-1.3.3.tgz", + "integrity": "sha512-8v4c/pw6HTxsF7pCgJoox/q4KKov4zkgLxEGGqLOZPSZaHf1LqdLlj5m5x5c1bKNn38uQXNvJKEnKX1qJlGeQQ==", + "requires": { + "@octokit/auth-token": "^2.4.0", + "@octokit/types": "^6.0.3" + } + }, + "@octokit/auth-token": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", + "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", + "requires": { + "@octokit/types": "^6.0.3" + } + }, + "@octokit/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", + "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "requires": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.0", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "requires": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/graphql": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.4.tgz", + "integrity": "sha512-SWTdXsVheRmlotWNjKzPOb6Js6tjSqA2a8z9+glDJng0Aqjzti8MEWOtuT8ZSu6wHnci7LZNuarE87+WJBG4vg==", + "requires": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-8.3.0.tgz", + "integrity": "sha512-ZFyQ30tNpoATI7o+Z9MWFUzUgWisB8yduhcky7S4UYsRijgIGSnwUKzPBDGzf/Xkx1DuvUtqzvmuFlDSqPJqmQ==" + }, + "@octokit/plugin-paginate-rest": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.14.0.tgz", + "integrity": "sha512-S2uEu2uHeI7Vf+Lvj8tv3O5/5TCAa8GHS0dUQN7gdM7vKA6ZHAbR6HkAVm5yMb1mbedLEbxOuQ+Fa0SQ7tCDLA==", + "requires": { + "@octokit/types": "^6.18.0" + } + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.4.1.tgz", + "integrity": "sha512-Nx0g7I5ayAYghsLJP4Q1Ch2W9jYYM0FlWWWZocUro8rNxVwuZXGfFd7Rcqi9XDWepSXjg1WByiNJnZza2hIOvQ==", + "requires": { + "@octokit/types": "^6.18.1", + "deprecation": "^2.3.1" + } + }, + "@octokit/request": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.0.tgz", + "integrity": "sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA==", + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.1", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "requires": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.19.0.tgz", + "integrity": "sha512-9wdZFiJfonDyU6DjIgDHxAIn92vdSUBOwAXbO2F9rOFt6DJwuAkyGLu1CvdJPphCbPBoV9iSDMX7y4fu0v6AtA==", + "requires": { + "@octokit/openapi-types": "^8.3.0" + } + }, + "before-after-hook": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", + "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" + }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + } +} diff --git a/package.json b/package.json index 67c27ca..477841f 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,9 @@ { "private": true, - "version": "1.0.1", - "description": "This package.json is here purely to control the version of the Action, in combination with https://github.com/JamesHenry/publish-shell-action" + "version": "2.0.0", + "description": "This package.json is here purely to control the version of the Action, in combination with https://github.com/JamesHenry/publish-shell-action", + "dependencies": { + "@actions/core": "^1.4.0", + "@octokit/action": "^3.10.10" + } } diff --git a/run.sh b/run.sh index cac1f63..e75376b 100755 --- a/run.sh +++ b/run.sh @@ -1,52 +1,51 @@ #!/bin/bash # We are the only consumers of this script (within action.yml), so no great need for input validation here -GITHUB_EVENT_NAME=$1 -INPUTS_MAIN_BRANCH_NAME=$2 -INPUTS_TAG_MATCH_PATTERN=$3 -INPUTS_ERROR_ON_NO_MATCHING_TAGS=$4 +GITHUB_TOKEN=$1 +GITHUB_EVENT_NAME=$2 +INPUTS_MAIN_BRANCH_NAME=$3 +INPUTS_ERROR_ON_NO_SUCCESSFUL_WORKFLOW=$4 +INPUTS_WORKFLOW_ID=$5 if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then BASE_SHA=$(echo $(git merge-base origin/$INPUTS_MAIN_BRANCH_NAME HEAD)) else # For the base SHA for main builds we use the latest matching tag as a marker for the last commit which was successfully built. # We use 2> /dev/null to swallow any direct errors from the command itself so we can provide more useful messaging - TAG=$(git describe --tags --abbrev=0 --match="$INPUTS_TAG_MATCH_PATTERN" 2> /dev/null) + BASE_SHA=$(node find-successful-workflow.js $GITHUB_TOKEN $INPUTS_MAIN_BRANCH_NAME $INPUTS_WORKFLOW_ID) - if [ -z $TAG ]; then - if [ $INPUTS_ERROR_ON_NO_MATCHING_TAGS = "true" ]; then + if [ -z $BASE_SHA ]; then + if [ $INPUTS_ERROR_ON_NO_SUCCESSFUL_WORKFLOW = "true" ]; then echo "" - echo "ERROR: Unable to resolve a latest matching tag on 'origin/$INPUTS_MAIN_BRANCH_NAME' based on the pattern '$INPUTS_TAG_MATCH_PATTERN'" + echo "ERROR: Unable to find a successful workflow run on 'origin/$INPUTS_MAIN_BRANCH_NAME'" echo "" - echo "NOTE: You have set 'error-on-no-matching-tags' on the action so this is a hard error." + echo "NOTE: You have set 'error-on-no-successful-workflow' on the action so this is a hard error." echo "" - echo "Is it possible that you have no relevant tags currently on 'origin/$INPUTS_MAIN_BRANCH_NAME' in your repo?" + echo "Is it possible that you have no runs currently on 'origin/$INPUTS_MAIN_BRANCH_NAME' in your repo?" echo "" - echo "- If yes, then you simply need to manually apply a tag which matches the 'tag-match-pattern' of '$INPUTS_TAG_MATCH_PATTERN'." - echo "- If no, then you likely have an issue with the pattern above as it is not matching the tag you are expecting it to." + echo "- If yes, then you should run the workflow without this flag first." + echo "- If no, then you might have changed your git history and those commits no longer exist." echo "" exit 1 else echo "" - echo "WARNING: Unable to resolve a latest matching tag on 'origin/$INPUTS_MAIN_BRANCH_NAME' based on the pattern '$INPUTS_TAG_MATCH_PATTERN'" + echo "WARNING: Unable to find a successful workflow run on 'origin/$INPUTS_MAIN_BRANCH_NAME'" echo "" echo "We are therefore defaulting to use HEAD~1 on 'origin/$INPUTS_MAIN_BRANCH_NAME'" echo "" - echo "NOTE: You can instead make this a hard error by settting 'error-on-no-matching-tags' on the action in your workflow." + echo "NOTE: You can instead make this a hard error by settting 'error-on-no-successful-workflow' on the action in your workflow." echo "" - TAG="HEAD~1" + BASE_SHA=$(echo $(git rev-parse HEAD~1)) fi else echo "" - echo "Successfully found a matching tag on 'origin/$INPUTS_MAIN_BRANCH_NAME' based on the pattern '$INPUTS_TAG_MATCH_PATTERN'" + echo "Found the last successful workflow run on 'origin/$INPUTS_MAIN_BRANCH_NAME'" echo "" - echo "Matching tag: $TAG" + echo "Commit: $BASE_SHA" echo "" fi - - BASE_SHA=$(echo $(git rev-parse $TAG~0)) fi HEAD_SHA=$(git rev-parse HEAD)