Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
3ee22d4
chore(deps-dev): bump @babel/traverse from 7.22.11 to 7.23.2 (#180)
dependabot[bot] Oct 19, 2023
267c486
docs: fix Jekyll formatting of another code block (#183)
muzimuzhi Nov 22, 2023
960bb45
Don't create /continue on macOS
vadi2 Dec 26, 2023
5f79911
add connect-timeout variable
dave-gray101 Apr 11, 2024
4d73cfd
run the build
dave-gray101 Apr 11, 2024
90ffb18
action.yml
dave-gray101 Apr 11, 2024
7cf1b97
connect-timeout-seconds is a better name
dave-gray101 Apr 12, 2024
b3db6e1
Merge pull request #189 from dave-gray101/feat-connect-timeout
dscho Apr 15, 2024
43767ec
chore(deps): bump to use actions/checkout v4 (node20 runtime) (#197)
chenrui333 Jun 13, 2024
88154b3
chore(deps-dev): bump braces from 3.0.2 to 3.0.3 (#196)
dependabot[bot] Aug 16, 2024
c85bfb7
chore(deps-dev): bump micromatch from 4.0.5 to 4.0.8 (#201)
dependabot[bot] Aug 24, 2024
e1dfbcc
Merge pull request #186 from vadi2/patch-1
dscho Oct 10, 2024
88e8ba7
Adding support for RHEL-based distributions
lpottier Oct 10, 2024
e5c7151
Merge pull request #205 from lpottier/master
dscho Oct 10, 2024
cfc7cae
chore(deps-dev): bump cross-spawn from 7.0.3 to 7.0.5 (#207)
dependabot[bot] Nov 17, 2024
c25b2ce
add new input msys2-location
jeremyd2019 Apr 18, 2025
21a5629
Update README.md with new input
jeremyd2019 Apr 18, 2025
e8c2820
Update index.js
jeremyd2019 Apr 18, 2025
0c00209
use msys2-location input in didTmateQuit and continueFileExists
jeremyd2019 Apr 18, 2025
c6f0481
Merge pull request #217 from jeremyd2019/master
dscho Apr 19, 2025
939a91a
Offer `mxschmitt/action-tmate/detached` for convenience
dscho Apr 19, 2025
47b6a8b
README: document the `mxschmitt/action-tmate/detached` Action
dscho Apr 19, 2025
19351d0
ci(manual-detached-test): use the `./detached` "sub-Action"
dscho Apr 19, 2025
7eae436
ci(manual-detached-test): drop no-longer-needed setting
dscho Apr 19, 2025
c606f86
Merge pull request #218 from mxschmitt/detached
dscho Apr 21, 2025
045615d
ci(manual-test): stop mentioning the obsolete ubuntu-20.04 pool
dscho Apr 19, 2025
40aba06
Merge pull request #220 from mxschmitt/ubuntu-20.04-is-eol
dscho Apr 21, 2025
f1ae249
Add support for output
maschwenk Apr 30, 2025
cad6165
Add ssh to output
maschwenk Apr 30, 2025
fda7fb3
(feature) Add outputs to detached action as well
maschwenk Apr 30, 2025
3f6efa8
Merge pull request #221 from maschwenk/mfs-add-support-for-output
dscho May 1, 2025
10acb04
ci: verify that the `action.yml` files are in sync
dscho May 1, 2025
6adc5f7
detached/action.yml: synchronize with `action.yml`
dscho May 1, 2025
a4b0140
ci: fix 'Verify that the project is built'
dscho May 1, 2025
7b6a61a
Merge pull request #223 from mxschmitt/verify-detached/action.yml-in-…
dscho May 1, 2025
04f8167
ci(manual-test): update list of runner images
muzimuzhi May 2, 2025
9ca996a
Merge pull request #224 from muzimuzhi/ci/update-runner-list
dscho May 2, 2025
85c04fe
ci(manual-test): convert from a matrix job to a single job
dscho May 2, 2025
26050e8
Add a node.js script to update manual-test's `runs-on` options
dscho May 2, 2025
2f034cd
ci(manual-test): update `runs-on` options
dscho May 2, 2025
64389e6
update-manual-test: special-case Windows/ARM64 runners
dscho May 2, 2025
877e019
manual-test: install MSYS2 on Windows/ARM64
dscho May 2, 2025
c02a7a6
Merge pull request #225 from dscho/manual-test-with-choice
dscho May 3, 2025
5b4fd8d
Merge upstream changes from mxschmitt/action-tmate
PrashantRaj18198 Oct 13, 2025
1499177
style: whitespace changes
PrashantRaj18198 Oct 13, 2025
98cc089
update action.yml
PrashantRaj18198 Oct 13, 2025
d02116e
fix: test
PrashantRaj18198 Oct 13, 2025
91473f0
rebuild
PrashantRaj18198 Oct 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions .github/workflows/checkin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,19 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 20
- name: Verify that action.yml files are in sync
run: |
npm run update-detached-action.yml &&
if ! git diff --exit-code \*action.yml
then
echo '::error::action.yml files are not in sync, maybe run `npm run update-detached-action.yml`?'
exit 1
fi
- name: Install dependencies
run: npm ci
- name: Run tests
Expand All @@ -24,7 +32,8 @@ jobs:
- name: Verify that the project is built
run: |
if [[ -n $(git status -s) ]]; then
echo "ERROR: generated dist/ differs from the current sources"
echo "ERROR: generated lib/ differs from the current sources"
git status -s
git diff
exit 1
fi
7 changes: 3 additions & 4 deletions .github/workflows/manual-detached-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./
- uses: actions/checkout@v4
- uses: ./detached
with:
limit-access-to-actor: true
detached: true
connect-timeout-seconds: 60
- run: |
echo "A busy loop"
for value in $(seq 10)
Expand Down
92 changes: 61 additions & 31 deletions .github/workflows/manual-test.yml
Original file line number Diff line number Diff line change
@@ -1,43 +1,73 @@
name: Manual test matrix
on: workflow_dispatch
name: Manual test
on:
workflow_dispatch:
inputs:
runs-on:
type: choice
description: 'The runner pool to run the job on'
required: true
default: ubuntu-24.04
options:
- ubuntu-24.04
- ubuntu-22.04
- macos-15-large
- macos-15
- macos-14-large
- macos-14
- macos-13
- macos-13-xlarge
- windows-2025
- windows-2022
- windows-2019
- windows-11-arm
container-runs-on:
type: choice
description: 'The Docker container to run the job on (this overrides the `runs-on` input)'
required: false
default: '(none)'
options:
- '(none)'
- fedora:latest
- archlinux:latest
- ubuntu:latest
limit-access-to-actor:
type: choice
description: 'Whether to limit access to the actor only'
required: true
default: 'auto'
options:
- auto
- 'true'
- 'false'

jobs:
test:
strategy:
fail-fast: false
matrix:
runs-on:
- ubuntu-20.04
- ubuntu-22.04
- macos-11.0
- macos-12.0
- windows-2019
- windows-2022
limit-access-to-actor:
- true
- false
runs-on: ${{ matrix.runs-on }}
if: ${{ inputs.container-runs-on == '(none)' }}
runs-on: ${{ inputs.runs-on }}
steps:
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
# The public preview of GitHub-hosted Windows/ARM64 runners lacks
# a working MSYS2 installation, so we need to set it up ourselves.
if: ${{ inputs.runs-on == 'windows-11-arm' }}
with:
msystem: 'CLANGARM64'
# We cannot use `C:\` because `msys2/setup-msys2` erroneously
# believes that an MSYS2 exists at `C:\msys64`, but it doesn't,
# which is the entire reason why we need to set it up in this
# here step... However, by using `C:\.\` we can fool that
# overzealous check.
location: C:\.\
- uses: actions/checkout@v4
- uses: ./
with:
limit-access-to-actor: ${{ matrix.limit-access-to-actor }}
limit-access-to-actor: ${{ inputs.limit-access-to-actor }}
test-container:
strategy:
fail-fast: false
matrix:
container-runs-on:
- fedora:latest
- archlinux:latest
- ubuntu:latest
limit-access-to-actor:
- true
- false
if: ${{ inputs.container-runs-on != '(none)' }}
runs-on: ubuntu-latest
container:
image: ${{ matrix.container-runs-on }}
image: ${{ inputs.container-runs-on }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: ./
with:
limit-access-to-actor: ${{ matrix.limit-access-to-actor }}
limit-access-to-actor: ${{ inputs.limit-access-to-actor }}
62 changes: 62 additions & 0 deletions .github/workflows/update-manual-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/usr/bin/env node

// Update the `runs-on` options of the `manual-test.yml` workflow file with the
// latest available images from the GitHub Actions runner images README file.

(async () => {
const fs = require('fs')

const readme = await (await fetch("https://github.com/actions/runner-images/raw/HEAD/README.md")).text()

// This will be the first `ubuntu` one.
let defaultOption = ''

const choices = readme
// Get the "Available Images" section
.split(/\n## Available Images\n/)[1]
.split(/##\s*[^#]/)[0]
// Split by lines
.split('\n')
.map(line => {
// The relevant lines are table rows; The first column is the image name,
// the second one contains a relatively free-form list of the `runs-on`
// options that we are interested in. Those `runs-on` options are
// surrounded by backticks.
const match = line.match(/^\|\s*([^|]+)\s*\|([^|]*)`([^`|]+)`\s*\|/)
if (!match) return false // Skip e.g. the table header and empty lines
let runsOn = match[3] // default to the last `runs-on` option
const alternatives = match[2]
.split(/`([^`]*)`/) // split by backticks
.filter((_, i) => (i % 2)) // keep only the text between backticks
.sort((a, b) => a.length - b.length) // order by length
if (alternatives.length > 0 && alternatives[0].length < runsOn.length) runsOn = alternatives[0]
if (!defaultOption && match[3].startsWith('ubuntu-')) defaultOption = runsOn
return runsOn
})
.filter(runsOn => runsOn)

// The Windows/ARM64 runners are in public preview (and for the time being,
// not listed in the `runner-images` README file), so we need to add this
// manually.
if (!choices.includes('windows-11-arm')) choices.push('windows-11-arm')

// Now edit the `manual-test` workflow definition
const ymlPath = `${__dirname}/manual-test.yml`
const yml = fs.readFileSync(ymlPath, 'utf8')

// We want to replace the `runs-on` options and the `default` value. This
// would be easy if there was a built-in YAML parser and renderer in Node.js,
// but there is none. Therefore, we use a regular expression to find certain
// "needles" near the beginning of the file: first `workflow_dispatch:`,
// after that `runs-on:` and then `default:` and `options:`. Then we replace
// the `default` value and the `options` values with the new ones.
const [, beforeDefault, beforeOptions, optionsIndent, afterOptions] =
yml.match(/^([^]*?workflow_dispatch:[^]*?runs-on:[^]*?default:)(?:.*)([^]*?options:)(\n +- )(?:.*)(?:\3.*)*([^]*)/) || []
if (!beforeDefault) throw new Error(`The 'manual-test.yml' file does not match the expected format!`)
const newYML =
`${beforeDefault} ${defaultOption}${[beforeOptions, ...choices].join(optionsIndent)}${afterOptions}`
fs.writeFileSync(ymlPath, newYML)
})().catch(e => {
console.error(e)
process.exitCode = 1
})
Loading