| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- name: CI
- on:
- push:
- branches: [ main ]
- tags:
- - "*"
- pull_request:
- branches: [ main ]
- schedule:
- - cron: '0 0 * * *'
- workflow_dispatch:
- jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Go
- uses: actions/setup-go@v2
- with:
- go-version: 1.16.5
- - name: Build
- run: make
- linux:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Go
- uses: actions/setup-go@v2
- with:
- go-version: 1.16.5
- - name: Build kg and kgctl for all Linux Architectures
- run: make all-build
- darwin:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Go
- uses: actions/setup-go@v2
- with:
- go-version: 1.16.5
- - name: Build kgctl for Darwin amd64
- run: make OS=darwin ARCH=amd64
- - name: Build kgctl for Darwin arm64
- run: make OS=darwin ARCH=arm64
- windows:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Go
- uses: actions/setup-go@v2
- with:
- go-version: 1.16.5
- - name: Build kgctl for Windows
- run: make OS=windows
- unit:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Go
- uses: actions/setup-go@v2
- with:
- go-version: 1.16.5
- - name: Run Unit Tests
- run: make unit
- e2e:
- if: github.event_name == 'pull_request'
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Go
- uses: actions/setup-go@v2
- with:
- go-version: 1.16.5
- - name: Run e2e Tests
- run: make e2e
- lint:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Go
- uses: actions/setup-go@v2
- with:
- go-version: 1.16.5
- - name: Lint Code
- run: make lint
- container:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Go
- uses: actions/setup-go@v2
- with:
- go-version: 1.16.5
- - name: Enable Experimental Docker CLI
- run: |
- echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
- mkdir -p ~/.docker
- echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
- sudo service docker restart
- docker version -f '{{.Client.Experimental}}'
- docker version -f '{{.Server.Experimental}}'
- docker buildx version
- - name: Container
- run: make container
- push:
- if: github.event_name != 'pull_request'
- needs:
- - build
- - linux
- - darwin
- - windows
- - unit
- - lint
- - container
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Set up Go
- uses: actions/setup-go@v2
- with:
- go-version: 1.16.5
- - name: Enable Experimental Docker CLI
- run: |
- echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
- mkdir -p ~/.docker
- echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
- sudo service docker restart
- docker version -f '{{.Client.Experimental}}'
- docker version -f '{{.Server.Experimental}}'
- docker buildx version
- - name: Set up QEMU
- uses: docker/setup-qemu-action@master
- with:
- platforms: all
- - name: Login to DockerHub
- if: github.event_name != 'pull_request'
- uses: docker/login-action@v1
- with:
- username: ${{ secrets.DOCKER_USERNAME }}
- password: ${{ secrets.DOCKER_PASSWORD }}
- - name: Build and push
- if: github.event_name != 'pull_request'
- run: make manifest
- - name: Build and push latest
- if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
- run: make manifest-latest
|