Act - Run your GitHub Actions locally

로컬 머신에서 Gitub Actions를 실행할 수 있는 도구 Act https://github.com/nektos/act/{:target="_blank"} .github/workflows/ 에서 GitHub Actions를 읽고 로컬 환경 실행 Docker 기반 컨테이너로 운영 macOS 에서는 Docker Desktop 필요 Linux, MacOS, Windows 지원 설치 및 실행 $ brew install act actions-test/.github/workflows/simple.yml # This is a basic workflow to help you get started with Actions name: CI on: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: # - uses: actions/checkout@v3 - name: echo test run: | cat /etc/*-release $ git clone https://github.com/cdecl/actions-test $ cd actions-test $ act [CI/build] 🚀 Start image=catthehacker/ubuntu:act-latest [CI/build] 🐳 docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true [CI/build] 🐳 docker create image=catthehacker/ubuntu:act-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] [CI/build] 🐳 docker run image=catthehacker/ubuntu:act-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] [CI/build] ⭐ Run Main echo test [CI/build] 🐳 docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/0] user= workdir= | DISTRIB_ID=Ubuntu | DISTRIB_RELEASE=22.04 | DISTRIB_CODENAME=jammy | DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS" | PRETTY_NAME="Ubuntu 22.04.2 LTS" | NAME="Ubuntu" | VERSION_ID="22.04" | VERSION="22.04.2 LTS (Jammy Jellyfish)" | VERSION_CODENAME=jammy | ID=ubuntu | ID_LIKE=debian | HOME_URL="https://www.ubuntu.com/" | SUPPORT_URL="https://help.ubuntu.com/" | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" | UBUNTU_CODENAME=jammy [CI/build] ✅ Success - Main echo test [CI/build] 🏁 Job succeeded Secret 및 Env 적용 VAR1=1111 VAR2=2222 $ act --env-file my.env --secret-file my.secrets Github Actions 와 모든것이 호환되지는 않음 (e.g. 스케쥴) 테스트 및 개발 용도로 사용 적합 ...

April 26, 2023 · Byung Kyu KIM

Gitlab CI/CD

Gitlab CI/CD 101 Gitlab 에서 제공하는 CI/CD 목적의 Workflow 툴 Auto DevOps or gitlab-runner 에서 실행 Setup CI/CD 를 통해 세팅 .gitlab-ci.yml 파일에 기술 Gitlab-Runner gitlab-runner : .gitlab-ci.yml 기반 파이프 라인 구성 Shared Runners : gitlab.com 에서 hosting 해주는 Runner Self hosting Runners : 별도 머신을 통해 Runner 설치 Gitlab-Runner 세팅 (Self hosting) Installing the Runner https://docs.gitlab.com/runner/install/linux-repository.html{:target="_blank"} Registering Runners https://docs.gitlab.com/runner/register/index.html{:target="_blank"} Interactive register runner $ sudo gitlab-runner register Runtime platform arch=amd64 os=linux pid=120146 revision=c5874a4b version=12.10.2 Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): http://hqgit.inpark.kr/ Please enter the gitlab-ci token for this runner: xxxxxxxxxxxxxxxxxxxxxxxxxxx Please enter the gitlab-ci description for this runner: ci-test runner Please enter the gitlab-ci tags for this runner (comma separated): centos24,ci-test,cdecl Registering runner... succeeded runner=WpQDakzK Please enter the executor: shell, kubernetes, parallels, docker, docker-ssh, ssh, virtualbox, docker+machine, docker-ssh+machine, custom: shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! # inline sudo gitlab-runner register \ --non-interactive \ --url "https://gitlab.com/" \ --registration-token "PROJECT_REGISTRATION_TOKEN" \ --executor "docker" \ --docker-image alpine:latest \ --description "docker-runner" \ --tag-list "docker" \ sudo gitlab-runner register \ --non-interactive \ --url "http://centos.cdecl.net/" \ --registration-token "PROJECT_REGISTRATION_TOKEN" \ --executor "docker" \ --docker-image alpine \ --description "docker-runner" \ --tag-list "docker" \ --env "DOCKER_TLS_CERTDIR=" \ --docker-privileged=true \ --docker-volumes "/ansible:/ansible" \ --docker-extra-hosts "centos.cdecl.net:192.168.0.20" Pipeline Configuration Basic GitLab CI/CD Pipeline Configuration Reference https://docs.gitlab.com/ee/ci/yaml/{:target="_blank"} Pipeline 기본적으로 git checkout 실행 Github Action 과 다르게 매뉴얼 실행 버튼 존재 image: ubuntu stages: # statge 정의 - build - test - deploy before_script: # - echo "Before script section" - echo "For example you might run an update here or install a build dependency" - echo "Or perhaps you might print out some debugging details" after_script: - echo "After script section" - echo "For example you might do some cleanup here" build_stage: stage: build script: - echo "Do your build here" test_stage1: stage: test script: - echo "Do a test here" - echo "For example run a test suite" test_stage2: stage: test script: - echo "Do another parallel test here" - echo "For example run a lint test" deploy_stage: stage: deploy script: - echo "Do your deploy here" ...

August 12, 2021 · Byung Kyu KIM