name: CI on: push: branches: [main] pull_request: branches: [main] jobs: lint: name: Lint runs-on: ubuntu-latest steps: - name: Check out uses: actions/checkout@v2 - name: Set up Go uses: actions/setup-go@v1 with: go-version: 1.16 - name: Install Dependencies run: | # Cue export CUE_VERSION="$(grep cue ./go.mod | cut -d' ' -f2)" export CUE_TARBALL="cue_${CUE_VERSION}_linux_amd64.tar.gz" echo "Installing cue version $CUE_VERSION" curl -L https://github.com/cuelang/cue/releases/download/${CUE_VERSION}/${CUE_TARBALL} | sudo tar zxf - -C /usr/local/bin - name: Go Lint uses: golangci/golangci-lint-action@v2 with: version: v1.39 skip-go-installation: true args: --timeout=3m - name: Lint run: | make shellcheck cuelint check-buildkit-version test: name: Test runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Check out uses: actions/checkout@v2 - name: Set up Go uses: actions/setup-go@v1 with: go-version: 1.16 - name: Install Dependencies run: | # SOPS sudo curl -L -o /usr/local/bin/sops https://github.com/mozilla/sops/releases/download/v3.6.1/sops-v3.6.1.linux sudo chmod +x /usr/local/bin/sops - name: Import PGP private key env: SOPS_PGP_KEY: ${{ secrets.SOPS_PGP_KEY }} run: | echo "$SOPS_PGP_KEY" | base64 -d | gpg --import - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Test run: | make test - name: Integration test run: | make integration - name: Publish Test Report uses: mikepenz/action-junit-report@v2 if: always() with: report_paths: "tests/*.xml" github_token: ${{ secrets.GITHUB_TOKEN }} check_name: "Test Report"