Checkout pr without GitHub Cli

This commit is contained in:
Louis Lam 2022-09-08 22:12:27 +08:00
parent 53135641f3
commit 9589fcfdef
2 changed files with 16 additions and 7 deletions

View File

@ -31,22 +31,21 @@ WORKDIR /app
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
## Install GitHub CLI ## Install Git
RUN apt update \ RUN apt update \
&& apt --yes --no-install-recommends install curl \ && apt --yes --no-install-recommends install curl \
&& curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \ && curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \ && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& apt update \ && apt update \
&& apt install gh -y && apt --yes --no-install-recommends install git
## Empty the directory, because we have to clone the Git repo. ## Empty the directory, because we have to clone the Git repo.
RUN rm -rf ./* && chown node /app RUN rm -rf ./* && chown node /app
USER node USER node
RUN git clone https://github.com/louislam/uptime-kuma.git RUN git clone --branch pr-test https://github.com/louislam/uptime-kuma.git .
RUN gh pr checkout 2023
RUN npm ci RUN npm ci
EXPOSE 3000 3001 EXPOSE 3000 3001

View File

@ -1,11 +1,21 @@
const childProcess = require("child_process"); const childProcess = require("child_process");
if (!process.env.UPTIME_KUMA_PRUPTIME_KUMA_PR) { if (!process.env.UPTIME_KUMA_GH_REPO) {
console.error("Please set a pull request number to the environment variable 'UPTIME_KUMA_PRUPTIME_KUMA_PR'"); console.error("Please set a repo to the environment variable 'UPTIME_KUMA_GH_REPO' (e.g. mhkarimi1383:goalert-notification)");
process.exit(1); process.exit(1);
} }
let inputArray = process.env.UPTIME_KUMA_GH_REPO.split(":");
if (inputArray.length !== 2) {
console.error("Invalid format. Please set a repo to the environment variable 'UPTIME_KUMA_GH_REPO' (e.g. mhkarimi1383:goalert-notification)");
}
let name = inputArray[0];
let branch = inputArray[1];
console.log("Checkout pr"); console.log("Checkout pr");
// Checkout the pr // Checkout the pr
childProcess.spawnSync("gh", [ "pr", "checkout", process.env.UPTIME_KUMA_PR ]); childProcess.spawnSync("git", [ "remote", "add", name, `https://github.com/${name}/uptime-kuma` ]);
childProcess.spawnSync("git", [ "checkout", `name/${branch}`, "--force" ]);