name: ZITADEL PR on: pull_request: branches: - '**' env: REGISTRY: ghcr.io NODE_VERSION: '12' GO_VERSION: '1.15' OPERATOR_IMAGE_NAME: ${{ github.repository }}-operator CRDB_IMAGE_NAME: ${{ github.repository }}-crbackup ARTIFACTS_FOLDER: './artifacts' jobs: refs: name: Prepare CI Vars runs-on: ubuntu-18.04 outputs: sha_short: ${{ steps.refs.outputs.sha_short }} short_ref: ${{ steps.refs.outputs.short_ref }} version: ${{ steps.refs.outputs.version }} steps: - name: Source checkout uses: actions/checkout@v2 - name: Semantic Release id: semantic uses: cycjimmy/semantic-release-action@v2 with: dry_run: true semantic_version: 17.0.4 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Set outputs id: refs run: | export BRANCH=${GITHUB_REF#refs/*/} echo "branch: ${BRANCH}" export BRANCHTRANSLATED=$(echo ${BRANCH} | tr '/' '_') echo "short_ref: ${BRANCHTRANSLATED}" export VERSION="" if ${{ steps.semantic.outputs.new_release_published == 'true' }}; then export VERSION=${{ steps.semantic.outputs.new_release_version }} else export VERSION=${BRANCHTRANSLATED} fi echo "New semantic release: ${{ steps.semantic.outputs.new_release_published }}" echo "version: ${VERSION}" echo "::set-output name=short_ref::${BRANCHTRANSLATED}" echo "::set-output name=sha_short::SHA-$(git rev-parse --short=12 HEAD)" echo "::set-output name=version::${VERSION}" zitadel-image: name: Build ZITADEL needs: refs runs-on: ubuntu-18.04 steps: - name: Source checkout uses: actions/checkout@v2 - name: Cache Docker layers uses: actions/cache@v2 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-zitadel-${{ hashFiles('**/go.sum', 'console/package-lock.json', 'build/dockerfile') }} restore-keys: | ${{ runner.os }}-zitadel- - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} registry: ${{ env.REGISTRY }} - run: ls -la - uses: docker/build-push-action@v2 with: context: . file: ./build/dockerfile platforms: linux/amd64 tags: ${{ env.REGISTRY }}/${{ github.repository }}:${{ needs.refs.outputs.sha_short }},${{ env.REGISTRY }}/${{ github.repository }}:${{ needs.refs.outputs.short_ref }} push: false cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new - uses: docker/build-push-action@v2 with: context: . file: ./build/dockerfile platforms: linux/amd64 tags: ${{ env.REGISTRY }}/${{ github.repository }}:coverage push: false cache-from: type=local,src=/tmp/.buildx-cache-new target: go-codecov outputs: type=local,dest=/tmp/zitadel - uses: codecov/codecov-action@v1 with: files: /tmp/zitadel/profile.cov name: codecov-go - # Temp fix # https://github.com/docker/build-push-action/issues/252 # https://github.com/moby/buildkit/issues/1896 name: Move cache run: | rm -rf /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache operator-image: needs: refs runs-on: ubuntu-18.04 name: Build ZITADEL Operator ${{ matrix.goos }}-${{ matrix.goarch }} strategy: matrix: goos: [ 'linux', 'darwin', 'windows' ] goarch: [ 'amd64' ] steps: - name: Source checkout uses: actions/checkout@v2 - name: Cache Docker layers uses: actions/cache@v2 with: path: /tmp/.buildx-cache key: ${{ matrix.goos }}-${{ matrix.goarch }}-operator-image-${{ hashFiles('**/go.sum', 'build/operator/Dockerfile') }} restore-keys: | ${{ matrix.goos }}-${{ matrix.goarch }}-operator-image- - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} registry: ${{ env.REGISTRY }} - uses: docker/build-push-action@v2 name: onlybuild with: context: . file: ./build/operator/Dockerfile platforms: linux/amd64 tags: ${{ env.REGISTRY }}/${{ env.OPERATOR_IMAGE_NAME }}:${{ needs.refs.outputs.sha_short }},${{ env.REGISTRY }}/${{ env.OPERATOR_IMAGE_NAME }}:${{ needs.refs.outputs.short_ref }} push: false cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new outputs: type=local,dest=/tmp/operator build-args: | OS=${{ matrix.goos }} ARCH=${{ matrix.goarch }} VERSION=${{ needs.refs.outputs.version }} GITHUBOAUTHCLIENTID=${{ secrets.GITHUBOAUTHCLIENTID }} GITHUBOAUTHCLIENTSECRET=${{ secrets.GITHUBOAUTHCLIENTSECRET }} - shell: bash run: | mv /tmp/operator/zitadelctl /tmp/operator/zitadelctl-${{ matrix.goos }}-${{ matrix.goarch }} - uses: actions/upload-artifact@v2 with: name: zitadelctl-${{ matrix.goos }}-${{ matrix.goarch }} path: /tmp/operator/zitadelctl-${{ matrix.goos }}-${{ matrix.goarch }} - uses: docker/build-push-action@v2 if: ${{ matrix.goos == 'linux' && matrix.goarch == 'amd64' }} name: buildandpush with: context: . file: ./build/operator/Dockerfile platforms: linux/amd64 tags: ${{ env.REGISTRY }}/${{ env.OPERATOR_IMAGE_NAME }}:${{ needs.refs.outputs.sha_short }},${{ env.REGISTRY }}/${{ env.OPERATOR_IMAGE_NAME }}:${{ needs.refs.outputs.short_ref }} push: false cache-from: type=local,src=/tmp/.buildx-cache-new build-args: | OS=${{ matrix.goos }} ARCH=${{ matrix.goarch }} VERSION=${{ needs.refs.outputs.version }} - uses: docker/build-push-action@v2 with: context: . file: ./build/operator/Dockerfile platforms: linux/amd64 tags: ${{ env.REGISTRY }}/${{ github.repository }}:coverage push: false cache-from: type=local,src=/tmp/.buildx-cache-new target: go-codecov outputs: type=local,dest=/tmp/operator - uses: codecov/codecov-action@v1 with: files: /tmp/operator/profile.cov name: codecov-go - # Temp fix # https://github.com/docker/build-push-action/issues/252 # https://github.com/moby/buildkit/issues/1896 name: Move cache run: | rm -rf /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache crdb-image: name: Build CockroachDB Image needs: refs runs-on: ubuntu-18.04 steps: - name: Source checkout uses: actions/checkout@v2 - name: Cache Docker layers uses: actions/cache@v2 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-crdb-image-${{ hashFiles('build/cr-backup/Dockerfile') }} restore-keys: | ${{ runner.os }}-crdb-image- - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} registry: ${{ env.REGISTRY }} - uses: docker/build-push-action@v2 name: buildandpush with: context: . file: ./build/cr-backup/Dockerfile platforms: linux/amd64 tags: ${{ env.REGISTRY }}/${{ env.CRDB_IMAGE_NAME }}:${{ needs.refs.outputs.sha_short }},${{ env.REGISTRY }}/${{ env.CRDB_IMAGE_NAME }}:${{ needs.refs.outputs.short_ref }} push: false cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,mode=max,dest=/tmp/.buildx-cache