name: ci on: push jobs: test: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v2 - name: test run: make docker-test - name: build run: make docker-build-static - name: acceptance-test run: make docker-acceptance - name: build-image run: make docker-image - name: save image run: make save-image - name: archive image uses: actions/upload-artifact@v2 with: name: kubeconform-image path: kubeconform-image.tar publish-image-master: runs-on: ubuntu-latest if: github.ref == 'refs/heads/master' needs: test steps: - name: checkout uses: actions/checkout@v2 - name: Download kubeconform image uses: actions/download-artifact@v2 with: name: kubeconform-image - name: load image run: docker load < kubeconform-image.tar - name: push run: | echo "${{ github.token }}" | docker login https://ghcr.io -u ${GITHUB_ACTOR} --password-stdin make push-image env: RELEASE_VERSION: master publish-image-release: runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/v') needs: test steps: - name: checkout uses: actions/checkout@v2 - name: Download kubeconform image uses: actions/download-artifact@v2 with: name: kubeconform-image - name: load image run: docker load < kubeconform-image.tar - name: Set env run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - name: push-tag run: | echo "${{ github.token }}" | docker login https://ghcr.io -u ${GITHUB_ACTOR} --password-stdin make push-image - name: push-latest run: | make push-image env: RELEASE_VERSION: latest goreleaser: runs-on: ubuntu-latest needs: test if: startsWith(github.ref, 'refs/tags/v') steps: - name: checkout uses: actions/checkout@v2 - name: goreleaser run: make release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}