Skip to content

Feature/add sync

Feature/add sync #348

Workflow file for this run

name: build
on:
push:
branches: [main]
tags:
- "v*"
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.after }}
cancel-in-progress: true
env:
ALI_REGISTRY: registry.cn-hangzhou.aliyuncs.com/openyurt
DOCKERHUB: openyurt
GITHUB_REGISTRY: ghcr.io/openyurtio/raven
jobs:
docker-push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v3
with:
go-version: "^1.18"
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Unit test
run: |
sudo apt-get update -y
sudo apt-get install -y ipset
sudo apt-get install -y iptables
sudo go test -v -short ./pkg/... ./cmd/... -coverprofile cover.out
- name: Publish Unit Test Coverage
uses: codecov/codecov-action@v3
with:
name: codecov-umbrella
token: ${{ secrets.CODECOV_TOKEN }}
flags: unittests
files: ./cover.out
fail_ci_if_error: true
verbose: true
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ env.DOCKERHUB }}/raven-agent
tags: |
type=sha
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
if: ${{ github.event_name != 'pull_request' && github.event.action != 'unassigned' }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
docker-push-ali-registry:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: "^1.18"
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Unit test
run: |
sudo apt-get update -y
sudo apt-get install -y ipset
sudo apt-get install -y iptables
sudo go test -v -short ./pkg/... ./cmd/...
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ env.ALI_REGISTRY }}/raven-agent
tags: |
type=sha
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Login to Alibaba Registry
uses: docker/login-action@v1
with:
registry: ${{ env.ALI_REGISTRY }}
username: ${{ secrets.ALI_REGISTRY_USERNAME }}
password: ${{ secrets.ALI_REGISTRY_PASSWORD }}
if: ${{ github.event_name != 'pull_request' && github.event.action != 'unassigned' }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
docker-push-github-registry:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: "^1.18"
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Unit test
run: |
sudo apt-get update -y
sudo apt-get install -y ipset
sudo apt-get install -y iptables
sudo go test -v -short ./pkg/... ./cmd/...
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ env.GITHUB_REGISTRY }}/raven-agent
tags: |
type=sha
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Login to Github Container Registry
uses: docker/login-action@v1
with:
registry: ${{ env.GITHUB_REGISTRY }}
username: ${{ secrets.GH_REGISTRY_USERNAME }}
password: ${{ secrets.GH_REGISTRY_PASSWORD }}
if: ${{ github.event_name != 'pull_request' && github.event.action != 'unassigned' }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}