Skip to content

Commit

Permalink
.github/workflows: Add ssh-runner.yml
Browse files Browse the repository at this point in the history
Signed-off-by: Jeff Thompson <[email protected]>
  • Loading branch information
jefft0 committed Oct 25, 2024
1 parent e78c3ee commit 93c3083
Showing 1 changed file with 108 additions and 0 deletions.
108 changes: 108 additions & 0 deletions .github/workflows/ssh-runner.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: SSH on runner
on:
workflow_dispatch:
inputs:
os:
description: "Operating System"
required: true
default: ubuntu-latest
type: choice
options:
- ubuntu-latest
- macos-latest
- windows-latest
mod:
description: "Install Go/Node modules"
required: true
default: true
type: boolean

jobs:
setup-ssh:
name: Setup runner and open SSH endpoint
runs-on: ${{ github.event.inputs.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
persist-credentials: false

- name: Load variables from file
uses: antifree/[email protected]
with:
filename: .github/workflows/utils/variables.json

- name: Setup asdf
uses: asdf-vm/actions/setup@v1

- name: Setup go
if: runner.os != 'Windows'
run: |
asdf plugin add golang
asdf install golang
echo "go_version=$(asdf current golang | xargs | cut -d ' ' -f 2)" >> $GITHUB_ENV
- name: Setup node
if: runner.os != 'Windows'
run: |
asdf plugin add nodejs
asdf install nodejs
echo "node_version=$(asdf current nodejs | xargs | cut -d ' ' -f 2)" >> $GITHUB_ENV
- name: Setup yarn
if: runner.os != 'Windows'
run: |
asdf plugin add yarn
asdf install yarn
- name: Cache go modules
if: github.event.inputs.mod == 'true' && runner.os != 'Windows'
uses: actions/[email protected]
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ env.go_version }}-${{ env.json_cache-versions_go }}-${{ hashFiles('go/**/go.sum') }}
restore-keys: ${{ runner.os }}-go-${{ env.go_version }}-${{ env.json_cache-versions_go }}-

- name: Cache node modules
if: github.event.inputs.mod == 'true' && runner.os != 'Windows'
uses: actions/[email protected]
with:
path: js/node_modules
key: ${{ runner.OS }}-node-${{ env.node_version }}-${{ env.json_cache-versions_node }}-${{ hashFiles('js/yarn.lock') }}
restore-keys: ${{ runner.OS }}-node-${{ env.node_version }}-${{ env.json_cache-versions_node }}-

- name: Fetch go modules
if: github.event.inputs.mod == 'true' && runner.os != 'Windows'
working-directory: go
run: go mod tidy

- name: Fetch node modules
if: github.event.inputs.mod == 'true' && runner.os != 'Windows'
working-directory: js
run: make node_modules

- name: Install emacs
shell: bash
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
sudo apt-get install -y emacs
elif [ "$RUNNER_OS" == "Windows" ]; then
choco install emacs
else
echo "Already installed!"
fi
- name: Install LazyVim
shell: bash
run: |
if [ "$RUNNER_OS" == "Windows" ]; then
git clone https://github.com/LazyVim/starter $env:LOCALAPPDATA\nvim
else
git clone https://github.com/LazyVim/starter ~/.config/nvim
fi
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
with:
limit-access-to-actor: true

0 comments on commit 93c3083

Please sign in to comment.