xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

GitLab CI/CD All In One

GitLab CI/CD All In One

Webhooks

Webhooks enable you to send notifications to web applications in response to events in a group or project.

We recommend using an integration in preference to a webhook.

https://gitlab.com/help/user/project/integrations/webhooks

Integrations ✅

Integrations enable you to make third-party applications part of your GitLab workflow.

If the available integrations don't meet your needs, consider using a webhook.

https://gitlab.com/xgqfrms/xyz-ui/-/settings/integrations

https://docs.gitlab.com/ee/user/project/integrations/overview.html

Jenkins

https://gitlab.com/xgqfrms/xyz-ui/-/integrations/jenkins/edit

Jira

https://gitlab.com/xgqfrms/xyz-ui/-/integrations/jira/edit

gitlab

https://docs.gitlab.com/ee/ci/yaml/

https://docs.gitlab.com/ee/ci/yaml/gitlab_ci_yaml.html

scripts / jobs / stages / pipeline

The scripts are grouped into jobs, and jobs run as part of a larger pipeline.
You can group multiple independent jobs into stages that run in a defined order.
The CI/CD configuration needs at least one job that is not hidden.

You should organize your jobs in a sequence that suits your application and is in accordance with the tests you wish to perform.
To visualize the process, imagine the scripts you add to jobs are the same as CLI commands you run on your computer.

When you add a .gitlab-ci.yml file to your repository, GitLab detects it and an application called GitLab Runner runs the scripts defined in the jobs.

.gitlab--web-app-ci.yml

# gitlab-ci template repo
include:
  - project: infra/pipeline
    file: 2022/.gitlab-ci.yml

2022/.gitlab-ci.yml

.gitlab-ci.yml

stages:
  - build
  - test

build-code-job:
  stage: build
  script:
    - echo "Check the ruby version, then build some Ruby project files:"
    - ruby -v
    - rake

test-code-job1:
  stage: test
  script:
    - echo "If the files are built successfully, test some files with one command:"
    - rake test1

test-code-job2:
  stage: test
  script:
    - echo "If the files are built successfully, test other files with a different command:"
    - rake test2

Dockerfile.ci

FROM nginx:latest
COPY dist/ /data/www/web-app
COPY nginx.conf /etc/nginx/conf.d/default.conf


nginx.conf

server {
    listen       80;
    server_name  _;

    root  /data/www/web-app;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html =404;
        index index.html;
        add_header Cache-Control no-store,max-age=0;
    }

    location /fs/ {
        proxy_pass https://open.feishu.cn/;
    }
}


github

on

jobs

steps

# This is a basic workflow to help you get started with Actions

name: FS_ROBOT

# Controls when the action will run. 
on:
  # Triggers the workflow on push events but only for the main branch
  push:
    branches: [ main ]
  schedule:
    - cron: '00 08,20 * * *'

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  hello-job:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2

      # Runs a single command using the runners shell
      - name: Run a one-line script
        run: echo Hello, world!
  # notice job
  wx-robot:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout codes'
        uses: actions/checkout@v1
      # 自定义 env, $GITHUB_ENV => ${{env.REPORT_DATE}}
      - name: 'Get Date'
        run: echo "REPORT_DATE=$(TZ=':Asia/Shanghai' date '+%Y-%m-%d %T')" >> $GITHUB_ENV
      # 自定义 env, $GITHUB_ENV => ${{env.WEBHOOK_KEY}}
      - name: 'set webhook key'
        run: echo "WEBHOOK_KEY=${{secrets.WEB_HOOK_KEY}}" >> $GITHUB_ENV
      # 自动发送打开通知
      - name: 'Send Notice'
        run: bash ./src/robot.sh
      # set env
      # - name: 'set env'
      #   run: export WX_ROBOT_KEY=${{secrets.WX_ROBOT_KEY}}
      # - name: 'get env'
      #   run: echo $WX_ROBOT_KEY
      # 自动发送打开通知
      # - name: 'Send Notice'
      #   run: bash ./src/robot.sh $WX_ROBOT_KEY
      # 自动发送打开通知
      # - name: 'Send Notice'
        # run: bash ./src/robot.sh env.WEBHOOK_KEY env.REPORT_DATE

demo

https://gitlab.com/xgqfrms/xyz-ui/-/hooks

https://github.com/xgqfrms/fs-robot-notice/blob/main/.github/workflows/robot.yml

Alpine Linux

alpine / 高山

https://www.alpinelinux.org/

refs



©xgqfrms 2012-2025

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @   xgqfrms  阅读(62)  评论(5编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-03-14 MIT OpenCourseWare All In One
2020-03-14 React Hooks & Context API All In One
2019-03-14 link & auto cards
2019-03-14 chart.js & canvas
2019-03-14 Chrome disable cache & clear memory cache
点击右上角即可分享
微信分享提示