Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Have the action output a versioning element so it could be used as part of the cache restore key #239

Merged
merged 4 commits into from
Jan 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,31 @@ env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

jobs:
version:
name: Version with commit unique id
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
- name: Version it!
run: |
# We expect a string such as const setupBeamVersion = 'undefined' in the code
SHA=$(git rev-parse --short HEAD)
sed -i'.bak' \
-e "s/const setupBeamVersion = '.*'/const setupBeamVersion = '${SHA}'/g" \
dist/index.js
# it always starts by being 'undefined'
NEWVER=$(grep -oE "const setupBeamVersion = '.*'" dist/index.js | cut -d\' -f2)
if [ "$NEWVER" == "undefined" ]; then
exit 1
else
echo "Continuing... new version is ${NEWVER}"
fi
git config user.name "GitHub Actions"
git config user.email "actions@user.noreply.github.com"
git add dist/index.js
git commit -m "Update setup-beam version output to ${SHA}"
git push origin main
check_integrity:
name: Expected local npm actions
runs-on: ubuntu-latest
Expand Down
24 changes: 4 additions & 20 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
os: 'ubuntu-latest'
version-type: 'strict'
- otp-version: '25.2'
elixir-version: '1.14.3'
elixir-version: '1.14.2'
os: 'ubuntu-latest'
- otp-version: '25.2'
elixir-version: '1.14.3'
Expand Down Expand Up @@ -66,14 +66,6 @@ jobs:
otp-version: '21'
rebar3-version: '3.12'
os: 'ubuntu-20.04'
- elixir-version: 'v1.6'
otp-version: '21'
rebar3-version: '3.12'
os: 'ubuntu-20.04'
- elixir-version: 'v1.7'
otp-version: '22'
rebar3-version: '3.13'
os: 'ubuntu-20.04'
- elixir-version: 'v1.7'
otp-version: '22'
rebar3-version: '3.13'
Expand All @@ -86,18 +78,10 @@ jobs:
otp-version: '25.0.2'
rebar3-version: '3.19'
os: 'ubuntu-20.04'
- elixir-version: 'v1.10'
otp-version: '23'
rebar3-version: '3.14'
os: 'ubuntu-20.04'
- elixir-version: 'v1.12'
otp-version: '24'
rebar3-version: '3.15'
os: 'ubuntu-20.04'
- elixir-version: 'v1.13.4'
otp-version: '25.0.2'
rebar3-version: '3.19'
os: 'ubuntu-20.04'
- elixir-version: 'v1.11.0'
otp-version: '22.3.4.2'
os: 'ubuntu-20.04'
Expand All @@ -108,11 +92,11 @@ jobs:
version-type: 'strict'
- elixir-version: 'main'
otp-version: '23.1'
os: 'ubuntu-20.04'
os: 'ubuntu-20.04'
version-type: 'strict'
- elixir-version: 'main'
otp-version: '25'
os: 'ubuntu-20.04'
os: 'ubuntu-20.04'
version-type: 'strict'
- gleam-version: '0.23'
otp-version: '24'
Expand All @@ -126,7 +110,7 @@ jobs:
otp-version: false
os: 'ubuntu-latest'
disable_problem_matchers: true
- gleam-version: '0.22.0' # Version with Gleam's old archive naming convention
- gleam-version: '0.22.0' # Version with Gleam's old archive naming convention
otp-version: '24'
os: 'ubuntu-latest'
disable_problem_matchers: true
Expand Down
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,21 @@ jobs:
...
```

### Outputs

The action provides the following outputs:

| Output | Content
|- |-
| otp-version | The Erlang version, e.g. `OTP-26.0`
| elixir-version | The Elixir version, e.g. `v1.14-otp-26`
| gleam-version | The Gleam version, e.g. `v0.23.0`
| rebar3-version | The `rebar3` version, e.g. `3.18.0`
| setup-beam-version | The commit unique id of the executed action version, e.g. `a34c98f`

accessible as `${{steps.<setup-beam-step-id>.outputs.<Output>}}`,
e.g. `${{steps.setup-beam.outputs.erlang-version}}`

### Version file

A version file is specified via input `version-file` (e.g.`.tool-versions`). This
Expand Down
2 changes: 2 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ outputs:
description: Exact version of Gleam that was installed
rebar3-version:
description: Exact version of rebar3 that was installed
setup-beam-version:
description: The commit unique id of the execution action version
runs:
using: node16
main: dist/index.js
4 changes: 4 additions & 0 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9868,6 +9868,10 @@ async function main() {

await maybeInstallGleam(gleamSpec)
await maybeInstallRebar3(rebar3Spec)

// undefined is replaced by a function, post- main branch merge
const setupBeamVersion = 'undefined'
core.setOutput('setup-beam-version', setupBeamVersion)
}

async function installOTP(otpSpec, osVersion) {
Expand Down
4 changes: 4 additions & 0 deletions src/setup-beam.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ async function main() {

await maybeInstallGleam(gleamSpec)
await maybeInstallRebar3(rebar3Spec)

// undefined is replaced by a function, post- main branch merge
const setupBeamVersion = 'undefined'
core.setOutput('setup-beam-version', setupBeamVersion)
}

async function installOTP(otpSpec, osVersion) {
Expand Down