GitHub가 cronjob 기반 트리거를 일시 중단하지 않도록 방지하는 방법
TopTalentedDev / UniSwap-v3-코어
🦄 🦄 🦄 Uniswap v3의 핵심 스마트 계약
유니스왑 V3
이 저장소에는 Uniswap V3 프로토콜의 핵심 스마트 계약이 포함되어 있습니다.
더 높은 수준의 계약은 uniswap-v3-periphery을 참조하십시오.
저장소.
버그 바운티
이 저장소는 정의된 용어here에 따라 Uniswap V3 버그 바운티 프로그램의 적용을 받습니다.
로컬 배포
이 코드를 로컬 테스트넷에 배포하려면 npm 패키지를 설치해야 합니다.@uniswap/v3-core
에 있는 공장 바이트코드를 가져옵니다.@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json
예를 들어:
import {
abi as FACTORY_ABI,
bytecode as FACTORY_BYTECODE,
} from '@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json'
// deploy the bytecode
This will ensure that you are testing against the same bytecode that is deployed to mainnet and public testnets, and all Uniswap code will correctly interoperate with your local deployment.
견고성 인터페이스 사용
The Uniswap v3 interfaces are available for import into solidity smart contracts
via the npm artifact @uniswap/v3-core
, e.g.:
import '@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol'
contract MyContract {
IUniswapV3Pool pool;
function doSomethingWithPool
…
Why
GitHub will suspend the scheduled trigger for GitHub action workflows if there is no commit in the repository for the past 60 days. The cron based triggers won't run unless a new commit is made. It shows the message "This scheduled workflow is disabled because there hasn't been activity in this repository for at least 60 days" under the cronjob triggered action.
Keepalive 작업 흐름
GitHub action to prevent GitHub from suspending your cronjob based triggers due to repository inactivity
왜
GitHub will suspend the scheduled trigger for GitHub action workflows if there is no commit in the repository for the past 60 days. The cron based triggers won't run unless a new commit is made. It shows the message "This scheduled workflow is disabled because there hasn't been activity in this repository for at least 60 days" under the cronjob triggered action.
뭐
This workflow will automatically create a dummy commit in your repo if the last commit in your repo is 50 days (default) ago.
This will keep the cronjob trigger active so that it will run indefinitely without getting suspended by GitHub for inactivity.
사용하는 방법
There are two ways you can consume this library in your GitHub actions
GitHub Actions를 통해(GitHub Actions 사용자용)
You can just include the library as a step after one of your favorite GitHub actions. Your workflow file should have the checkout action defined in one of your steps since this library needs git CLI to work.
name: Github Action with a cronjob trigger
on:
schedule:
- cron: "0 0 * * *"
jobs:
cronjob-based-github-action:
name: Cronjob based github action
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- # step1
- # step 2
- # step n, use it as the last step
- uses: gautamkrishnar/keepalive-workflow@v1 # using the workflow with default settings
Waka Readme의 예를 들어 보겠습니다.
name: My awesome readme
on:
workflow_dispatch:
schedule:
# Runs at 12 am UTC
- cron: "0 0 * * *"
jobs:
update-readme:
name: Update this repo's README
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: athul/waka-readme@master
with:
WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
- uses: gautamkrishnar/keepalive-workflow@v1 # using the workflow with default settings
JavaScript 라이브러리를 통해(GitHub Actions 개발자용)
멋진 GitHub 작업을 만드는 개발자의 경우 NPM 에서 라이브러리를 설치하여 javascript 기반 GitHub 작업에서 라이브러리를 사용할 수 있습니다. 이 라이브러리에는 종속성으로 필요하므로 GitHub 작업이 체크아웃 작업을 사용하는지 확인하세요.
첫 번째 부분에서 언급한 대로 사용자에게 추가 단계로 포함하도록 요청할 수도 있습니다.
패키지 설치
NPM을 통해 설치:
npm i keepalive-workflow
원사를 통해 설치:
yarn add keepalive-workflow
자체 GitHub 작업 소스 코드에서 사용
const core = require('@actions/core');
const { KeepAliveWorkflow } = require('keepalive-workflow');
// Using the lib
KeepAliveWorkflow(githubToken, committerUsername, committerEmail, commitMessage, timeElapsed)
.then((message) => {
core.info(message);
process.exit(0);
})
.catch((error) => {
core.error(error);
process.exit(1);
});
옵션
GitHub 작업의 경우
GitHub 작업을 통해 언급한 대로 워크플로를 사용하는 경우 동작을 사용자 지정하는 데 사용할 수 있는 옵션은 다음과 같습니다.
옵션
기본값
설명
필수의
gh_token
repo 범위가 있는 기본 GitHub 토큰Repo 범위가 있는 GitHub 액세스 토큰
아니
commit_message
Automated commit by Keepalive Workflow to keep the repository active
저장소에 커밋하는 동안 사용되는 커밋 메시지아니
committer_username
gkr-bot
저장소에 커밋하는 동안 사용된 사용자 이름아니
committer_email
[email protected]
저장소에 커밋하는 동안 사용된 이메일 ID아니
time_elapsed
50
새로운 자동 커밋을 트리거하기 위해 이전 커밋에서 경과된 시간(일)아니
auto_push
true
워크플로가 변경 사항을 자동으로 푸시할지 여부를 정의합니다.아니
자바스크립트 라이브러리의 경우
프로젝트의 JS 라이브러리 버전을 사용하는 경우 사용 가능한 매개변수 목록을 보려면 library.js에서 함수의 DocString을 참조하십시오.
기여자 ✨
이 훌륭한 분들에게 감사드립니다( emoji key ):
Abit 💻
Guillaume NICOLAS 📖
Daniel Maticzka 💻
이 프로젝트는 all-contributors 사양을 따릅니다. 어떤 종류의 기여도 환영합니다!
특허
이 프로젝트는
마음에 들었어?
이 프로젝트가 마음에 드셨기를 바랍니다. 별 ⭐을 주는 것을 잊지 마세요.
Reference
이 문제에 관하여(GitHub가 cronjob 기반 트리거를 일시 중단하지 않도록 방지하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/toptalenteddev/how-to-prevent-github-from-suspending-your-cronjob-based-triggers-53n7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)