Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: webfactory/create-aws-codedeploy-deployment
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.1.0
Choose a base ref
...
head repository: webfactory/create-aws-codedeploy-deployment
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Jun 17, 2020

  1. Copy the full SHA
    46359e5 View commit details
  2. Copy the full SHA
    06ad424 View commit details
  3. Fix another markdown glitch

    mpdude authored Jun 17, 2020
    Copy the full SHA
    69f4277 View commit details
  4. Copy the full SHA
    38eda93 View commit details

Commits on Sep 15, 2020

  1. Create a very simple CLI wrapper (#2)

    * Move heavy lifting parts into a dedicated module
    
    That way, you should be able to reuse most of the action-code, but replace
    the GitHub Actions specific part with other wrappers. For example, a simple
    CLI command could be used to trigger deployments as well.
    
    * Add a very simple CLI wrapper to trigger deployments
    
    * Add a package version
    
    * Catch missing appspec.yml files early on
    
    * Pass the "core" module
    
    * Avoid querying for parameters that should have sane defaults
    
    * Improve exception handling
    
    * Remove commented-out code, bump dependencies
    mpdude authored Sep 15, 2020
    Copy the full SHA
    62d30ec View commit details
  2. Mitigate race condition (#3)

    Try to ensure in-order execution when different workflows race for deployments.
    mpdude authored Sep 15, 2020
    Copy the full SHA
    fc0c006 View commit details
  3. Copy the full SHA
    250217b View commit details
  4. Copy the full SHA
    9046ced View commit details

Commits on Sep 16, 2020

  1. Copy the full SHA
    ebef158 View commit details

Commits on Sep 18, 2020

  1. Copy the full SHA
    0d7a684 View commit details

Commits on Dec 17, 2020

  1. Copy the full SHA
    f459828 View commit details
  2. Copy the full SHA
    0b69994 View commit details
  3. Copy the full SHA
    cbc07d4 View commit details

Commits on Jul 6, 2021

  1. Add a switch to ignore the sequence check (#9)

    Useful if, for example, the workflow file is renamed and GHA starts
    counting workflow runs from #1 again.
    mpdude authored Jul 6, 2021
    Copy the full SHA
    7ea8651 View commit details

Commits on Jul 12, 2021

  1. "yarn upgrade" dependencies

    mpdude committed Jul 12, 2021
    Copy the full SHA
    90089b1 View commit details

Commits on Sep 29, 2021

  1. Bump i from 0.3.6 to 0.3.7

    Bumps [i](https://github.com/pksunkara/inflect) from 0.3.6 to 0.3.7.
    - [Release notes](https://github.com/pksunkara/inflect/releases)
    - [Commits](pksunkara/inflect@v0.3.6...v0.3.7)
    
    ---
    updated-dependencies:
    - dependency-name: i
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Sep 29, 2021
    Copy the full SHA
    ae7b0f9 View commit details

Commits on Oct 14, 2021

  1. Merge pull request #12 from webfactory/dependabot/npm_and_yarn/i-0.3.7

    Bump i from 0.3.6 to 0.3.7
    relthyg authored Oct 14, 2021
    Copy the full SHA
    f76ac4d View commit details

Commits on Oct 24, 2021

  1. Allow deployments to be triggered by workflow_dispatch events (#8)

    This change fixes detection of which branch/commit to use when using (manually triggered) `workflow_dispatch` events to run deployment workflows.
    
    See #7 for the description of the problem that existed previously.
    mkarnicki authored Oct 24, 2021
    Copy the full SHA
    cb5e208 View commit details

Commits on Mar 27, 2022

  1. Bump minimist from 1.2.5 to 1.2.6

    Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
    - [Release notes](https://github.com/substack/minimist/releases)
    - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)
    
    ---
    updated-dependencies:
    - dependency-name: minimist
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Mar 27, 2022
    Copy the full SHA
    2168a8f View commit details

Commits on Mar 31, 2022

  1. Copy the full SHA
    3015c90 View commit details
  2. Bump node-fetch from 2.6.1 to 2.6.7

    Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
    - [Release notes](https://github.com/node-fetch/node-fetch/releases)
    - [Commits](node-fetch/node-fetch@v2.6.1...v2.6.7)
    
    ---
    updated-dependencies:
    - dependency-name: node-fetch
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Mar 31, 2022
    Copy the full SHA
    80f893c View commit details

Commits on Jun 15, 2022

  1. Copy the full SHA
    7e39b15 View commit details

Commits on Jun 29, 2022

  1. Update Node dependencies (#18)

    This PR updates all dependencies.
    mpdude authored Jun 29, 2022
    Copy the full SHA
    1874ac5 View commit details
  2. Fail gracefully with an error message when appspec.yml is missing (#19)

    Fail gracefully when the `appspec.yml` file was not found. Might be a common mistake to forget running `actions/checkout` before this action here.
    
    Closes #10.
    mpdude authored Jun 29, 2022
    Copy the full SHA
    ba5d416 View commit details
  3. Fix variable scoping issue

    mpdude committed Jun 29, 2022
    Copy the full SHA
    65409bf View commit details

Commits on Jun 30, 2022

  1. Allow overriding the branch name used to look up configuration (#20)

    This PR adds a new `config-name` action input value. It can be used to override the name used to look up the deployment configuration in the `branch_config` section of the appspec.yml file.
    
    By default, the current branch name (`master`, or a PR branch) will be used to find a deployment config, by matching the regular expressions from the `branch_config` section in `appspec.yml`.
    
    Overriding the value makes sense when running the action multiple times within the same job or workflow to create multiple deployments for a single push or PR.
    mpdude authored Jun 30, 2022
    Copy the full SHA
    7e84e00 View commit details

Commits on Jul 1, 2022

  1. Copy the full SHA
    0e6395e View commit details
  2. Fix handling of concurrent deployments (#24)

    It seems AWS changed the error message emitted when another deployment is already active.
    
    Fixes #22.
    mpdude authored Jul 1, 2022
    Copy the full SHA
    97ede50 View commit details

Commits on Oct 25, 2022

  1. Copy the full SHA
    df8aebb View commit details
  2. Add a $PR_NUMBER placeholder for deployment group names (#26)

    This adds a second placeholder `$PR_NUMBER` (to the already existing `$BRANCH`) that can be used to derive deployment group names based on Pull Request IDs.
    mpdude authored Oct 25, 2022
    Copy the full SHA
    de07259 View commit details

Commits on Dec 9, 2022

  1. Bump simple-git from 3.10.0 to 3.15.0 (#27)

    Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.10.0 to 3.15.0.
    - [Release notes](https://github.com/steveukx/git-js/releases)
    - [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md)
    - [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.15.0/simple-git)
    
    ---
    updated-dependencies:
    - dependency-name: simple-git
      dependency-type: direct:production
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Dec 9, 2022
    Copy the full SHA
    0470a8d View commit details

Commits on Dec 16, 2022

  1. Copy the full SHA
    396fac2 View commit details

Commits on Feb 6, 2023

  1. Bump simple-git from 3.15.0 to 3.16.0 (#28)

    Bumps
    [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git)
    from 3.15.0 to 3.16.0.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/steveukx/git-js/releases">simple-git's
    releases</a>.</em></p>
    <blockquote>
    <h2>simple-git@3.16.0</h2>
    <h3>Minor Changes</h3>
    <ul>
    <li>97fde2c: Support the use of <code>-B</code> in place of the default
    <code>-b</code> in checkout methods</li>
    <li>0a623e5: Adds vulnerability detection to prevent use of
    <code>--upload-pack</code> and <code>--receive-pack</code> without
    explicitly opting in.</li>
    </ul>
    <h3>Patch Changes</h3>
    <ul>
    <li>ec97a39: Include restricting the use of git push --exec with other
    allowUnsafePack exclusions, thanks to <a
    href="https://github.com/stsewd"><code>@​stsewd</code></a> for the
    suggestion.</li>
    </ul>
    <h2>simple-git@3.15.1</h2>
    <h3>Patch Changes</h3>
    <ul>
    <li>de570ac: Resolves an issue whereby non-strings can be passed into
    the config switch detector.</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md">simple-git's
    changelog</a>.</em></p>
    <blockquote>
    <h2>3.16.0</h2>
    <h3>Minor Changes</h3>
    <ul>
    <li>97fde2c: Support the use of <code>-B</code> in place of the default
    <code>-b</code> in checkout methods</li>
    <li>0a623e5: Adds vulnerability detection to prevent use of
    <code>--upload-pack</code> and <code>--receive-pack</code> without
    explicitly opting in.</li>
    </ul>
    <h3>Patch Changes</h3>
    <ul>
    <li>ec97a39: Include restricting the use of git push --exec with other
    allowUnsafePack exclusions, thanks to <a
    href="https://github.com/stsewd"><code>@​stsewd</code></a> for the
    suggestion.</li>
    </ul>
    <h2>3.15.1</h2>
    <h3>Patch Changes</h3>
    <ul>
    <li>de570ac: Resolves an issue whereby non-strings can be passed into
    the config switch detector.</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/steveukx/git-js/commit/1a129523abadb877ad3e0bad362cc06593f04135"><code>1a12952</code></a>
    Version Packages</li>
    <li><a
    href="https://github.com/steveukx/git-js/commit/ec97a39ab60b89e870c5170121cd9c1603cc1951"><code>ec97a39</code></a>
    Block unsafe pack (push --exec) (<a
    href="https://github.com/steveukx/git-js/tree/HEAD/simple-git/issues/882">#882</a>)</li>
    <li><a
    href="https://github.com/steveukx/git-js/commit/0a623e53fd4b7617ca9c4d1d51bc53d105f52b2b"><code>0a623e5</code></a>
    Feat/unsafe pack (<a
    href="https://github.com/steveukx/git-js/tree/HEAD/simple-git/issues/881">#881</a>)</li>
    <li><a
    href="https://github.com/steveukx/git-js/commit/97fde2c44f08abfdfa591c03d883b215f2d547d3"><code>97fde2c</code></a>
    Add support for using the <code>-B</code> modifier instead of the
    default <code>-b</code> when usin...</li>
    <li><a
    href="https://github.com/steveukx/git-js/commit/edfd4595194d83663a0299a63c32cb150a78b6da"><code>edfd459</code></a>
    Update readme.md</li>
    <li><a
    href="https://github.com/steveukx/git-js/commit/c9fc61f4abfb4f738ab9f4b5bd146555b7b9735c"><code>c9fc61f</code></a>
    Version Packages</li>
    <li><a
    href="https://github.com/steveukx/git-js/commit/de570acd052660bad0165347de5d2f86a494ae1b"><code>de570ac</code></a>
    Fix/non strings (<a
    href="https://github.com/steveukx/git-js/tree/HEAD/simple-git/issues/867">#867</a>)</li>
    <li>See full diff in <a
    href="https://github.com/steveukx/git-js/commits/simple-git@3.16.0/simple-git">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=simple-git&package-manager=npm_and_yarn&previous-version=3.15.0&new-version=3.16.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    - `@dependabot use these labels` will set the current labels as the
    default for future PRs for this repo and language
    - `@dependabot use these reviewers` will set the current reviewers as
    the default for future PRs for this repo and language
    - `@dependabot use these assignees` will set the current assignees as
    the default for future PRs for this repo and language
    - `@dependabot use this milestone` will set the current milestone as the
    default for future PRs for this repo and language
    
    You can disable automated security fix PRs for this repo from the
    [Security Alerts
    page](https://github.com/webfactory/create-aws-codedeploy-deployment/network/alerts).
    
    </details>
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 6, 2023
    Copy the full SHA
    4ee3e35 View commit details

Commits on Jul 12, 2023

  1. Bump semver from 5.7.1 to 5.7.2 (#29)

    Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/npm/node-semver/releases">semver's
    releases</a>.</em></p>
    <blockquote>
    <h2>v5.7.2</h2>
    <h2><a
    href="https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2">5.7.2</a>
    (2023-07-10)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li><a
    href="https://github.com/npm/node-semver/commit/2f8fd41487acf380194579ecb6f8b1bbfe116be0"><code>2f8fd41</code></a>
    <a href="https://redirect.github.com/npm/node-semver/pull/585">#585</a>
    better handling of whitespace (<a
    href="https://redirect.github.com/npm/node-semver/issues/585">#585</a>)
    (<a href="https://github.com/joaomoreno"><code>@​joaomoreno</code></a>,
    <a
    href="https://github.com/lukekarrys"><code>@​lukekarrys</code></a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md">semver's
    changelog</a>.</em></p>
    <blockquote>
    <h2><a
    href="https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2">5.7.2</a>
    (2023-07-10)</h2>
    <h3>Bug Fixes</h3>
    <ul>
    <li><a
    href="https://github.com/npm/node-semver/commit/2f8fd41487acf380194579ecb6f8b1bbfe116be0"><code>2f8fd41</code></a>
    <a href="https://redirect.github.com/npm/node-semver/pull/585">#585</a>
    better handling of whitespace (<a
    href="https://redirect.github.com/npm/node-semver/issues/585">#585</a>)
    (<a href="https://github.com/joaomoreno"><code>@​joaomoreno</code></a>,
    <a
    href="https://github.com/lukekarrys"><code>@​lukekarrys</code></a>)</li>
    </ul>
    <h2>5.7</h2>
    <ul>
    <li>Add <code>minVersion</code> method</li>
    </ul>
    <h2>5.6</h2>
    <ul>
    <li>Move boolean <code>loose</code> param to an options object, with
    backwards-compatibility protection.</li>
    <li>Add ability to opt out of special prerelease version handling with
    the <code>includePrerelease</code> option flag.</li>
    </ul>
    <h2>5.5</h2>
    <ul>
    <li>Add version coercion capabilities</li>
    </ul>
    <h2>5.4</h2>
    <ul>
    <li>Add intersection checking</li>
    </ul>
    <h2>5.3</h2>
    <ul>
    <li>Add <code>minSatisfying</code> method</li>
    </ul>
    <h2>5.2</h2>
    <ul>
    <li>Add <code>prerelease(v)</code> that returns prerelease
    components</li>
    </ul>
    <h2>5.1</h2>
    <ul>
    <li>Add Backus-Naur for ranges</li>
    <li>Remove excessively cute inspection methods</li>
    </ul>
    <h2>5.0</h2>
    <ul>
    <li>Remove AMD/Browserified build artifacts</li>
    <li>Fix ltr and gtr when using the <code>*</code> range</li>
    <li>Fix for range <code>*</code> with a prerelease identifier</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/npm/node-semver/commit/f8cc313550691a50d9662d8c94f0c033717efd7d"><code>f8cc313</code></a>
    chore: release 5.7.2</li>
    <li><a
    href="https://github.com/npm/node-semver/commit/2f8fd41487acf380194579ecb6f8b1bbfe116be0"><code>2f8fd41</code></a>
    fix: better handling of whitespace (<a
    href="https://redirect.github.com/npm/node-semver/issues/585">#585</a>)</li>
    <li><a
    href="https://github.com/npm/node-semver/commit/deb5ad51bf58868fa243c1683775305fe9e0e365"><code>deb5ad5</code></a>
    chore: <code>@​npmcli/template-oss</code><a
    href="https://github.com/4"><code>@​4</code></a>.16.0</li>
    <li>See full diff in <a
    href="https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2">compare
    view</a></li>
    </ul>
    </details>
    <details>
    <summary>Maintainer changes</summary>
    <p>This version was pushed to npm by <a
    href="https://www.npmjs.com/~lukekarrys">lukekarrys</a>, a new releaser
    for semver since your current version.</p>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=semver&package-manager=npm_and_yarn&previous-version=5.7.1&new-version=5.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the
    [Security Alerts
    page](https://github.com/webfactory/create-aws-codedeploy-deployment/network/alerts).
    
    </details>
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Jul 12, 2023
    Copy the full SHA
    49de04c View commit details

Commits on Aug 12, 2024

  1. Copy the full SHA
    3922b2b View commit details

Commits on Aug 13, 2024

  1. Copy the full SHA
    06ef5c3 View commit details
  2. Update to AWS SDK v3 (#32)

    mpdude authored Aug 13, 2024
    Copy the full SHA
    3bbfd21 View commit details

Commits on Jan 28, 2025

  1. Bump undici from 5.28.4 to 5.28.5 (#33)

    Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.28.5.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/nodejs/undici/releases">undici's
    releases</a>.</em></p>
    <blockquote>
    <h2>v5.28.5</h2>
    <h1>⚠️ Security Release ⚠️</h1>
    <p>Fixes CVE CVE-2025-22150 <a
    href="https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975">https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975</a>
    (embargoed until 22-01-2025).</p>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5">https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5</a></p>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/nodejs/undici/commit/6139ed2e0c787853243de58ef7c4301b26ca66f2"><code>6139ed2</code></a>
    Bumped v5.28.5</li>
    <li><a
    href="https://github.com/nodejs/undici/commit/711e20772764c29f6622ddc937c63b6eefdf07d0"><code>711e207</code></a>
    Backport of c2d78cd</li>
    <li>See full diff in <a
    href="https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=undici&package-manager=npm_and_yarn&previous-version=5.28.4&new-version=5.28.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the
    [Security Alerts
    page](https://github.com/webfactory/create-aws-codedeploy-deployment/network/alerts).
    
    </details>
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Jan 28, 2025
    Copy the full SHA
    489798b View commit details

Commits on Feb 15, 2025

  1. Bump @octokit/request-error from 5.1.0 to 5.1.1

    Bumps [@octokit/request-error](https://github.com/octokit/request-error.js) from 5.1.0 to 5.1.1.
    - [Release notes](https://github.com/octokit/request-error.js/releases)
    - [Commits](octokit/request-error.js@v5.1.0...v5.1.1)
    
    ---
    updated-dependencies:
    - dependency-name: "@octokit/request-error"
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Feb 15, 2025
    Copy the full SHA
    2069c52 View commit details

Commits on Mar 11, 2025

  1. Merge pull request #34 from webfactory/dependabot/npm_and_yarn/octoki…

    …t/request-error-5.1.1
    
    Bump @octokit/request-error from 5.1.0 to 5.1.1
    DerMeier authored Mar 11, 2025
    Copy the full SHA
    86d97d4 View commit details
  2. Bump @octokit/endpoint from 9.0.5 to 9.0.6

    Bumps [@octokit/endpoint](https://github.com/octokit/endpoint.js) from 9.0.5 to 9.0.6.
    - [Release notes](https://github.com/octokit/endpoint.js/releases)
    - [Commits](octokit/endpoint.js@v9.0.5...v9.0.6)
    
    ---
    updated-dependencies:
    - dependency-name: "@octokit/endpoint"
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Mar 11, 2025
    Copy the full SHA
    c97874d View commit details
  3. Bump @octokit/plugin-paginate-rest from 9.2.1 to 9.2.2

    Bumps [@octokit/plugin-paginate-rest](https://github.com/octokit/plugin-paginate-rest.js) from 9.2.1 to 9.2.2.
    - [Release notes](https://github.com/octokit/plugin-paginate-rest.js/releases)
    - [Commits](octokit/plugin-paginate-rest.js@v9.2.1...v9.2.2)
    
    ---
    updated-dependencies:
    - dependency-name: "@octokit/plugin-paginate-rest"
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Mar 11, 2025
    Copy the full SHA
    95e66e6 View commit details

Commits on Mar 19, 2025

  1. Merge pull request #36 from webfactory/dependabot/npm_and_yarn/octoki…

    …t/endpoint-9.0.6
    
    Bump @octokit/endpoint from 9.0.5 to 9.0.6
    DerMeier authored Mar 19, 2025
    Copy the full SHA
    fb55bf6 View commit details
  2. Bump @octokit/request from 8.4.0 to 8.4.1

    Bumps [@octokit/request](https://github.com/octokit/request.js) from 8.4.0 to 8.4.1.
    - [Release notes](https://github.com/octokit/request.js/releases)
    - [Commits](octokit/request.js@v8.4.0...v8.4.1)
    
    ---
    updated-dependencies:
    - dependency-name: "@octokit/request"
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Mar 19, 2025
    Copy the full SHA
    e3956ae View commit details
  3. Merge pull request #35 from webfactory/dependabot/npm_and_yarn/octoki…

    …t/request-8.4.1
    
    Bump @octokit/request from 8.4.0 to 8.4.1
    DerMeier authored Mar 19, 2025
    Copy the full SHA
    b34dd85 View commit details
  4. Merge pull request #37 from webfactory/dependabot/npm_and_yarn/octoki…

    …t/plugin-paginate-rest-9.2.2
    
    Bump @octokit/plugin-paginate-rest from 9.2.1 to 9.2.2
    DerMeier authored Mar 19, 2025
    Copy the full SHA
    c84c73a View commit details
Showing with 122,081 additions and 50,902 deletions.
  1. +13 −0 CHANGELOG.md
  2. +92 −23 README.md
  3. +9 −3 { → create-deployment}/action.yml
  4. +18 −0 delete-deployment-group/action.yml
  5. +60,349 −0 dist/create-deployment/index.js
  6. +60,342 −0 dist/delete-deployment-group/index.js
  7. +0 −50,325 dist/index.js
  8. +0 −128 index.js
  9. +7 −6 package.json
  10. +215 −0 src/action.js
  11. +30 −0 src/create-deployment.js
  12. +23 −0 src/delete-deployment-group.js
  13. +983 −417 yarn.lock
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# create-aws-codedeploy-deployment Action Changelog

## Version v0.5.1

- Update action code to use the AWS JavaScript SDK v3, to make warnings about the upcoming v2 EOL go away

## Version v0.5.0

- Added a second action to remove deployment groups, e. g. after a PR has been closed or merged. In order to serve both actions from a single repository, the actions were moved to subdirectories. Refer to actions as `webfactory/create-aws-codedeploy-deployment/create-deployment@v0.5.0` and `webfactory/create-aws-codedeploy-deployment/delete-deployment-group@v0.5.0` respectively in your workflow's `uses:` clause.

## Previous versions

No dedicated changelog file has been written. Refer to https://github.com/webfactory/create-aws-codedeploy-deployment/releases for release information.
115 changes: 92 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -36,19 +36,19 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: aws-actions/configure-aws-credentials@v1
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.SECRET_ACCESS_KEY }}
aws-region: eu-central-1
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- id: deploy
uses: webfactory/create-aws-codedeploy-deployment@v0.1.0
- uses: peter-evans/commit-comment@v1
uses: webfactory/create-aws-codedeploy-deployment/create-deployment@v0.5.0
- uses: peter-evans/commit-comment@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
body: |
@${{ github.actor }} this was deployed as [${{ steps.deploy.outputs.deploymentId }}](https://console.aws.amazon.com/codesuite/codedeploy/deployments/${{ steps.deploy.outputs.deploymentId }}?region=eu-central-1) to group `${{ steps.deploy.outputs.deploymentGroupName }}`.
@${{ github.actor }} this was deployed as [${{ steps.deploy.outputs.deploymentId }}](https://console.aws.amazon.com/codesuite/codedeploy/deployments/${{ steps.deploy.outputs.deploymentId }}?region=eu-central-1) to group `${{ steps.deploy.outputs.deploymentGroupName }}`.
```
First, this configures AWS Credentials in the GitHub Action runner. The [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) action is used for that, and credentials are kept in [GitHub Actions Secrets](https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets).
@@ -87,9 +87,6 @@ branch_config:
serviceRoleArn: arn:aws:iam::1234567890:role/CodeDeployStagingRole
ec2TagFilters:
- { Type: KEY_AND_VALUE, Key: hostname, Value: phobos.stage }
deploymentConfig:
autoRollbackConfiguration:
enabled: false
```

The purpose of the `branch_config` section is to tell the action how to configure CodeDeploy Deployment Groups and Deployments, based on the
@@ -101,6 +98,8 @@ The first entry makes the action skip the deployment (do nothing at all) when th

Commits on the `master` branch are to be deployed in a Deployment Group called `production`. All other commits will create or update a Deployment Group named `$BRANCH.staging.acme.tld`, where `$BRANCH` will be replaced with a DNS-safe name derived from the current branch. Basically, a branch called `feat/123/new_gimmick` will use `feat-123-new-gimmick` for `$BRANCH`. Since the Deployment Group Name is available in the `$DEPLOYMENT_GROUP_NAME` environment variable inside your CodeDeploy Lifecycle Scripts, you can use that to create "staging" environments with a single, generic configuration statement.

Similar to `$BRANCH`, for workflows triggered by Pull Requests, the string `$PR_NUMBER` will be replaced by the pull request number.

The `deploymentGroupConfig` and `deploymentConfig` keys in each of the two cases contain configuration that is passed as-is to the
[`CreateDeploymentGroup`](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html) or
[`UpdateDeploymentGroup`](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_UpdateDeploymentGroup.html) API calls (for
@@ -112,37 +111,107 @@ The only addition made will be that the `revision` parameter for `CreateDeployme

## Usage

0. The basic CodeDeploy setup, including the creation of Service Roles, IAM credentials with sufficient permissions and installation of the
CodeDeploy Agent on your target hosts is outside the scope of this action. Follow [the documentation](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html).
1. [Create a CodeDeploy Application](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create.html) that corresponds to your
repository. By default, this action will assume your application is named by the "short" repository name (so, `myapp` for a `myorg/myapp` GitHub
repository), but you can also pass the application name as an input to the action.
0. The basic CodeDeploy setup, including the creation of Service Roles, IAM credentials with sufficient permissions and installation of the CodeDeploy Agent on your target hosts is outside the scope of this action. Follow [the documentation](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html).
1. [Create a CodeDeploy Application](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create.html) that corresponds to your repository. By default, this action will assume your application is named by the "short" repository name (so, `myapp` for a `myorg/myapp` GitHub repository), but you can also pass the application name as an input to the action.
2. Connect your CodeDeploy Application with your repository following [these instructions](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-create-cli-github.html).
3. Configure the [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) action in your workflow and
provide the necessary IAM credentials as secrets.
4. Add the `branch_config` section to your `appspec.yml` file to map branches to Deployment Groups and their configuration. In the above example, the
`master` and `.*` sub-sections show the minimal configuration required.
5. Add `uses: webfactory/create-aws-codedeploy-deployment@v0.1.0` as a step to your workflow file. If you want to use the action's outputs, you
will also need to provide an `id` for the step.

3. Configure the [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) action in your workflow and provide the necessary IAM credentials as secrets. See the section below for the necessary IAM permissions.
4. Add the `branch_config` section to your `appspec.yml` file to map branches to Deployment Groups and their configuration. In the above example, the `master` and `.*` sub-sections show the minimal configuration required.
5. Add `uses: webfactory/create-aws-codedeploy-deployment/create-deployment@v0.5.0` as a step to your workflow file. If you want to use the action's outputs, you will also need to provide an `id` for the step.

### AWS IAM Permissions

The IAM User that is used to run the action requires the following IAM permissions. Note that depending on your policies you might want to specify narrower Resource ARNs, that is, more specifically tailor the permission to one particular repository and/or application.

```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:PassRole",
"codedeploy:GetDeployment",
"codedeploy:GetApplicationRevision",
"codedeploy:CreateDeployment",
"codedeploy:RegisterApplicationRevision",
"codedeploy:GetDeploymentConfig",
"codedeploy:GetDeploymentGroup",
"codedeploy:UpdateDeploymentGroup",
"codedeploy:CreateDeploymentGroup",
"codedeploy:DeleteDeploymentGroup"
],
"Resource": [
"arn:aws:iam::{your_account_id}:role/{your_codedeploy_service_role}",
"arn:aws:codedeploy:eu-central-1:{your_account_id}:deploymentconfig:*",
"arn:aws:codedeploy:eu-central-1:{your_account_id}:deploymentgroup:*/*",
"arn:aws:codedeploy:eu-central-1:{your_account_id}:application:*"
]
}
]
}
```

## Race Conditions

As of writing, the AWS CodeDeploy API does not accept new deployment requests for an application and deployment group as long as another deployment is still in progress. So, this action will retry a few times and eventually (hopefully) succeed.

There might be situations where several workflow runs are triggered in quick succession - for example, when merging several approved pull requests in a short time. Since your test suites or workflow runs might take a varying amount of time to finish and to reach the deployment phase (_this_ action), you cannot be sure that the triggered deployments will happen in the order you merged the pull requests (to stick with the example). You could not even be sure that the last deployment made was based on the last commit in your repository.

To work around this, this action includes the GitHub Actions "[run id](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context)" in the `description` field for created deployments. Before creating a new deployment, it will fetch the _last attempted deployment_ from the AWS API and compare its run id with the current run. If the current run has a _lower_ id than the last attempted deployment, the deployment will be aborted.

This workaround should catch a good share of possible out-of-order deployments. There is a slight chance for mishaps, however: If a _newer_ deployment happens to start _after_ we checked the run id and finishes _before_ we commence our own deployment (just a few lines of code later), this might go unnoticed. To really prevent this from happening, ordering deployments probably needs to be supported on the AWS API side, see https://github.com/aws/aws-codedeploy-agent/issues/248.

## Action Input and Output Parameters

### Input

* `application`: The name of the CodeDeploy Application to work with. Defaults to the "short" repo name.
* `skip-sequence-check`: When set to `true`, do not attempt to make sure deployments happen in order. Use this when the workflow count has been reset or changed to a lower value; possible cause is renaming the workflow file.
* `config-name`: Name used to look up the deployment config in the `branch_config` section of the `appspec.yml` file. Defaults to the current branch name. By using this override, you can force a particular config to be used regardless of the branch name. Or, you can run the action several times within the same job to create multiple (different) deployments from the same branch.

### Outputs

* `deploymentId`: AWS CodeDeployment Deployment-ID of the deployment created
* `deploymentGroupName`: AWS CodeDeployment Deployment Group name used
* `deploymentGroupCreated`: True, if a new deployment group was created. False, if an existing group was updated.
* `deploymentGroupCreated`: `1`, if a new deployment group was created; `0` if an existing group was updated.

You can use the expression `if: steps.<your-deployment-step>.outputs.deploymentGroupCreated==true` (or `...==false`) on subsequent workflow steps to run actions only if the deployment created a new deployment group (or updated an existing deployment, respectively).

## Cleaning Up

Sooner or later you might want to get rid of the CodeDeploy Deployment Groups created by this action. For example, when you create deployments for pull requests opened in a repo, you might want to delete those once the PR has been closed or merged.

To help you with this, a second action is included in this repo that can delete Deployment Groups, and uses the same rules to derive the group name as described above.

Here is an example workflow that runs for closed pull requests:

```yaml
# .github/workflows/cleanup-deployment-groups.yml
on:
pull_request:
types:
- closed
jobs:
deployment:
runs-on: ubuntu-latest
steps:
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.SECRET_ACCESS_KEY }}
aws-region: eu-central-1
- uses: actions/checkout@v4
- uses: webfactory/create-aws-codedeploy-deployment/delete-deployment-group@v0.5.0
```

## Hacking

As a note to my future self, in order to work on this repo:

* Clone it
* Run `npm install` to fetch dependencies
* Run `yarn install` to fetch dependencies
* _hack hack hack_
* Run `npm run build` to update `dist/*`, which holds the files actually run
* Read https://help.github.com/en/articles/creating-a-javascript-action if unsure.
@@ -157,4 +226,4 @@ If you're a developer looking for new challenges, we'd like to hear from you! Ot
- <https://www.webfactory.de>
- <https://twitter.com/webfactory>

Copyright 2020 webfactory GmbH, Bonn. Code released under [the MIT license](LICENSE).
Copyright 2020 - 2024 webfactory GmbH, Bonn. Code released under [the MIT license](LICENSE).
12 changes: 9 additions & 3 deletions action.yml → create-deployment/action.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
name: 'webfactory/create-aws-codedeploy-deployment'
name: 'webfactory/create-aws-codedeploy-deployment/create-deployment'
description: 'An Action to deploy GitHub repos with AWS CodeDeploy'
inputs:
application:
description: 'AWS CodeDeploy application name; defaults to short repository name'
skip-sequence-check:
description: 'When set, skip the check making sure no earlier workflow results are deployed'
default: false
config-name:
description: 'Override name to look up branch_config; default is to use the current branch name.'
default: ''
outputs:
deploymentId:
description: AWS CodeDeployment Deployment-ID of the deployment created
@@ -11,8 +17,8 @@ outputs:
deploymentGroupCreated:
description: True, if a new deployment group was created; false if an already existing group was used.
runs:
using: 'node12'
main: 'dist/index.js'
using: 'node20'
main: '../dist/create-deployment/index.js'

branding:
icon: cast
18 changes: 18 additions & 0 deletions delete-deployment-group/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: 'webfactory/create-aws-codedeploy-deployment/delete-deployment-group'
description: 'Delete an AWS CodeDeploy deployment group, e. g. after a PR has been closed'
inputs:
application:
description: 'AWS CodeDeploy application name; defaults to short repository name'
config-name:
description: 'Override name to look up branch_config; default is to use the current branch name.'
default: ''
outputs:
deploymentGroupName:
description: AWS CodeDeployment Deployment Group name used
runs:
using: 'node20'
main: '../dist/delete-deployment-group/index.js'

branding:
icon: cast
color: orange
Loading