Skip to content

Commit 1d2f4a6

Browse files
committed
feat(action): run on Github without Docker
Commit built action into repo and run built JS in GHA.
1 parent 9e16e4d commit 1d2f4a6

File tree

7 files changed

+544
-49
lines changed

7 files changed

+544
-49
lines changed

.github/workflows/build-action.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Build Action
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- action/**
8+
- action.yml
9+
branches:
10+
- main
11+
- gha
12+
13+
jobs:
14+
build:
15+
runs-on: ubuntu-latest
16+
permissions:
17+
contents: write
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v4
21+
- name: Use Node.js
22+
uses: actions/setup-node@v2
23+
with:
24+
node-version: 18.20.4
25+
- name: Install pnpm
26+
uses: pnpm/action-setup@v4
27+
id: pnpm-install
28+
with:
29+
version: 9.12.3
30+
run_install: true
31+
- name: Copy linked dependencies
32+
run: |
33+
find ./node_modules -type l -exec readlink -f {} ';' -exec rm -rf {} ';' | xargs -I % sh -c 'cp -r % ./tmp' && mv ./tmp/* ./node_modules/
34+
- name: Build Action
35+
run: pnpm -C action build
36+
- name: Commit built artefacts and dependencies
37+
uses: EndBug/add-and-commit@v9
38+
with:
39+
add: "-f ./action/build ./action/node_modules"
40+
message: "fix(action): build gha [skip ci]"
41+
docker:
42+
runs-on: ubuntu-latest
43+
steps:
44+
- name: Checkout
45+
uses: actions/checkout@v4
46+
- name: Login to Docker Hub
47+
uses: docker/login-action@v3
48+
with:
49+
username: ${{ secrets.DOCKERHUB_LINGODOTDEV_USERNAME }}
50+
password: ${{ secrets.DOCKERHUB_LINGODOTDEV_PASSWORD }}
51+
- name: Set up QEMU
52+
uses: docker/setup-qemu-action@v3
53+
- name: Set up Docker Buildx
54+
uses: docker/setup-buildx-action@v3
55+
- name: Build Docker image and push
56+
uses: docker/build-push-action@v6
57+
with:
58+
push: true
59+
platforms: linux/amd64
60+
context: ./action
61+
file: ./action/Dockerfile
62+
tags: ${{ secrets.DOCKERHUB_LINGODOTDEV_USERNAME }}/ci-action:latest

.github/workflows/docker.yml

Lines changed: 0 additions & 33 deletions
This file was deleted.

action.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,9 @@ branding:
77
color: "black"
88

99
runs:
10-
using: "docker"
11-
image: "action/Dockerfile"
12-
env:
13-
LINGODOTDEV_API_KEY: ${{ inputs.api-key }}
14-
LINGODOTDEV_PULL_REQUEST: ${{ inputs.pull-request }}
15-
LINGODOTDEV_COMMIT_MESSAGE: ${{ inputs.commit-message }}
16-
LINGODOTDEV_PULL_REQUEST_TITLE: ${{ inputs.pull-request-title }}
17-
LINGODOTDEV_WORKING_DIRECTORY: ${{ inputs.working-directory }}
18-
LINGODOTDEV_PROCESS_OWN_COMMITS: ${{ inputs.process-own-commits }}
10+
using: "node20"
11+
main: "action/build/index.js"
12+
1913
inputs:
2014
api-key:
2115
description: "Lingo.dev Platform API Key"

action/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"build": "tsc"
55
},
66
"dependencies": {
7+
"@actions/core": "^1.11.1",
78
"@gitbeaker/rest": "^39.34.3",
89
"bitbucket": "^2.12.0",
910
"octokit": "^4.0.2",

action/src/platforms/github.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import core from "@actions/core";
12
import { Octokit } from "octokit";
23
import { PlatformKit } from "./_base.js";
34
import Z from "zod";
@@ -6,6 +7,17 @@ import { execSync } from "child_process";
67
export class GitHubPlatformKit extends PlatformKit {
78
private _octokit?: Octokit;
89

10+
constructor() {
11+
process.env.LINGODOTDEV_API_KEY = core.getInput("api-key");
12+
process.env.LINGODOTDEV_PULL_REQUEST = core.getInput("pull-request");
13+
process.env.LINGODOTDEV_COMMIT_MESSAGE = core.getInput("commit-message");
14+
process.env.LINGODOTDEV_PULL_REQUEST_TITLE = core.getInput("pull-request-title");
15+
process.env.LINGODOTDEV_WORKING_DIRECTORY = core.getInput("working-directory");
16+
process.env.LINGODOTDEV_PROCESS_OWN_COMMITS = core.getInput("process-own-commits");
17+
18+
super();
19+
}
20+
921
get octokit() {
1022
if (!this._octokit) {
1123
this._octokit = new Octokit({ auth: this.platformConfig.ghToken });

0 commit comments

Comments
 (0)