GitHub가 cronjob 기반 트리거를 일시 중단하지 않도록 방지하는 방법

저장소 비활성으로 인해 GitHub가 cronjob 기반 작업 트리거를 일시 중단하지 않도록 GitHub 작업을 만들었습니다.


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_tokenrepo 범위가 있는 기본 GitHub 토큰
Repo 범위가 있는 GitHub 액세스 토큰
아니
commit_messageAutomated commit by Keepalive Workflow to keep the repository active저장소에 커밋하는 동안 사용되는 커밋 메시지
아니
committer_usernamegkr-bot저장소에 커밋하는 동안 사용된 사용자 이름
아니
committer_email[email protected]저장소에 커밋하는 동안 사용된 이메일 ID
아니
time_elapsed50새로운 자동 커밋을 트리거하기 위해 이전 커밋에서 경과된 시간(일)
아니
auto_pushtrue워크플로가 변경 사항을 자동으로 푸시할지 여부를 정의합니다.
아니


자바스크립트 라이브러리의 경우



프로젝트의 JS 라이브러리 버전을 사용하는 경우 사용 가능한 매개변수 목록을 보려면 library.js에서 함수의 DocString을 참조하십시오.

기여자 ✨



이 훌륭한 분들에게 감사드립니다( emoji key ):




Abit
💻



Guillaume NICOLAS
📖



Daniel Maticzka
💻



이 프로젝트는 all-contributors 사양을 따릅니다. 어떤 종류의 기여도 환영합니다!

특허



이 프로젝트는

마음에 들었어?



이 프로젝트가 마음에 드셨기를 바랍니다. 별 ⭐을 주는 것을 잊지 마세요.

좋은 웹페이지 즐겨찾기