diff --git a/.github/workflows/test.yml b/.github/workflows/build.yml similarity index 75% rename from .github/workflows/test.yml rename to .github/workflows/build.yml index faa244eecdf8b46270eeefb5616324d9b8831557..4a1983601ee1e177a8339098ff2507a84f9ee4fb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Test CI +name: build on: push: @@ -10,10 +10,28 @@ on: env: CI: true + DOCKER_REPO: renovate/renovate + YARN_CACHE_KEY: v1 + BUILDX_VERSION: v0.3.1 + # https://github.com/chalk/supports-color/issues/106 + FORCE_COLOR: true jobs: + cleanup: + runs-on: ubuntu-latest + timeout-minutes: 5 + + steps: + - name: github-cleanup + uses: renovatebot/gh-action@v0 + continue-on-error: true + with: + command: github-cleanup + token: ${{ secrets.GH_TOKEN }} + dry-run: ${{github.ref == 'refs/heads/master'}} + test: - name: test + needs: [cleanup] runs-on: ${{ matrix.os }} # tests shouldn't need more than 15 min @@ -75,9 +93,9 @@ jobs: uses: actions/cache@v1 with: path: ${{ steps.init.outputs.yarn_cache }} - key: v1-${{ runner.os }}-yarn_cache-${{ hashFiles('**/yarn.lock') }} + key: ${{ env.YARN_CACHE_KEY }}-${{ runner.os }}-yarn_cache-${{ hashFiles('**/yarn.lock') }} restore-keys: | - v1-${{ runner.os }}-yarn_cache- + ${{ env.YARN_CACHE_KEY }}-${{ runner.os }}-yarn_cache- - name: Cache node_modules uses: actions/cache@v1 @@ -172,9 +190,9 @@ jobs: uses: actions/cache@v1 with: path: ${{ steps.init.outputs.yarn_cache }} - key: v1-${{ runner.os }}-yarn_cache-${{ hashFiles('**/yarn.lock') }} + key: ${{ env.YARN_CACHE_KEY }}-${{ runner.os }}-yarn_cache-${{ hashFiles('**/yarn.lock') }} restore-keys: | - v1-${{ runner.os }}-yarn_cache- + ${{ env.YARN_CACHE_KEY }}-${{ runner.os }}-yarn_cache- - name: Cache node_modules uses: actions/cache@v1 @@ -200,3 +218,44 @@ jobs: - name: Type check run: yarn type-check + + test-docker: + needs: cleanup + runs-on: ubuntu-latest + + timeout-minutes: 15 + + steps: + - name: Set up Docker Buildx ${{ env.BUILDX_VERSION }} + uses: crazy-max/ghaction-docker-buildx@v1 + with: + version: ${{ env.BUILDX_VERSION }} + + - uses: actions/checkout@v2 + + - name: Build the Docker images + run: | + docker buildx bake \ + --file docker/bake.hcl \ + --set settings.output=type=docker \ + default + + - name: Test the Docker images + run: | + docker run --rm -t ${DOCKER_REPO} --version + docker run --rm -t ${DOCKER_REPO}:slim --version + + - name: Image history latest + run: docker history ${DOCKER_REPO} + - name: Image history slim + run: docker history ${DOCKER_REPO}:slim + + - name: Images size + run: docker image ls | grep ${DOCKER_REPO} + + release: + needs: [lint, test, test-docker] + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - run: echo "Release" diff --git a/.github/workflows/dockerimages.yml b/.github/workflows/dockerimages.yml deleted file mode 100644 index 769b26a0ac0f004ba495eced084b6be24ff0ae0d..0000000000000000000000000000000000000000 --- a/.github/workflows/dockerimages.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Docker Images CI - -on: - push: - branches: - - master - - 'renovate/**' - - pull_request: - -env: - PLATFORM: linux/amd64 - DOCKER_CACHE_TAG: _cache - DOCKER_REPO: renovate/renovate - -jobs: - build: - name: Build image - runs-on: ubuntu-latest - - timeout-minutes: 20 - - steps: - - name: Set up Docker Buildx - id: buildx - uses: crazy-max/ghaction-docker-buildx@v1 - with: - version: v0.3.1 - - - uses: actions/checkout@v2 - - - name: Build the Docker images - run: | - docker buildx bake \ - --file docker/bake.hcl \ - --set settings.output=type=docker \ - default - - - name: Test the Docker images - run: | - docker run --rm -t ${DOCKER_REPO} --version - docker run --rm -t ${DOCKER_REPO}:slim --version - - - name: Image history latest - run: docker history ${DOCKER_REPO} - - name: Image history slim - run: docker history ${DOCKER_REPO}:slim - - - name: Images size - run: docker image ls | grep ${DOCKER_REPO} diff --git a/.github/workflows/release-docker.sh b/.github/workflows/release-docker.sh index 37a6a0add454abbcc3b2c41e1e6e10540ac84802..6b8896e1521d61b6aba60877176869dd1ee0d28c 100755 --- a/.github/workflows/release-docker.sh +++ b/.github/workflows/release-docker.sh @@ -16,11 +16,8 @@ fi # build final images docker buildx bake \ --file docker/bake.hcl \ - --set settings.args.SHA=${SHA}} \ --set settings.labels.org.opencontainers.image.version=${VERSION} \ - --set settings.labels.org.opencontainers.image.revision=${SHA} \ - --set latest.cache-to=renovate/renovate:_cache-latest \ - --set slim.cache-to=renovate/renovate:_cache-slim \ + --set settings.labels.org.opencontainers.image.revision=${GIT_HASH} \ --set settings.output=type=docker \ default diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index be5ba1a61452deb20b9a8b155a2bafba96a32faf..9d5c56481730b77e3c9bfb03edf2353ad4bad9e9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,9 +7,11 @@ on: env: PLATFORM: linux/amd64 - DOCKER_CACHE_TAG: _cache DOCKER_REPO: renovate/renovate SKIP_JAVA_TESTS: true + BUILDX_VERSION: v0.3.1 + # https://github.com/chalk/supports-color/issues/106 + FORCE_COLOR: true jobs: semantic-release: @@ -76,11 +78,11 @@ jobs: - name: Unit tests run: yarn jest --maxWorkers=2 --ci --coverageReporters=text-summary - - name: Set up Docker Buildx + - name: Set up Docker Buildx ${{ env.BUILDX_VERSION }} id: buildx uses: crazy-max/ghaction-docker-buildx@v1 with: - version: v0.3.1 + version: ${{ env.BUILDX_VERSION }} - name: Docker registry login run: echo "${{ secrets.DOCKER_RENOVATERELEASE_TOKEN }}" | docker login -u renovaterelease --password-stdin @@ -90,8 +92,8 @@ jobs: run: | docker buildx bake \ --file docker/bake.hcl \ - --set latest.cache-to=renovate/renovate:_cache-latest \ - --set slim.cache-to=renovate/renovate:_cache-slim \ + --set latest.cache-to=type=registry,ref=renovate/docker-build-cache:renovate-latest,mode=max \ + --set slim.cache-to=type=registry,ref=renovate/docker-build-cache:renovate-slim,mode=max \ default - name: semantic-release @@ -99,6 +101,6 @@ jobs: echo '//registry.yarnpkg.com/:_authToken=${NPM_TOKEN}' > ~/.npmrc yarn semantic-release env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} SHA: ${{github.sha}} diff --git a/docker/bake.hcl b/docker/bake.hcl index 91e047e95c3f68734d0556d946cc64a76898bda7..4c8b6ee5c77a9bb4dc6a87ff6f8cc686cb26ad73 100644 --- a/docker/bake.hcl +++ b/docker/bake.hcl @@ -10,11 +10,11 @@ target "slim" { inherits = ["settings"] tags = ["renovate/renovate:slim"] args = { "IMAGE" = "slim" } - cache-from = ["renovate/renovate:_cache-slim"] + cache-from = ["renovate/docker-build-cache:renovate-slim", "renovate/renovate:_cache-slim"] } target "latest" { inherits = ["settings"] tags = ["renovate/renovate"] - cache-from = ["renovate/renovate:_cache-latest"] + cache-from = ["renovate/docker-build-cache:renovate-latest", "renovate/renovate:_cache-latest"] } diff --git a/readme.md b/readme.md index 4c26ef8084c63aa444b952159e2fdcc849836bdc..36523f6afff37b18b147605afec8641b384d7ab6 100644 --- a/readme.md +++ b/readme.md @@ -7,6 +7,7 @@ Automated dependency updates. Multi-platform and multi-language. [](https://raw.githubusercontent.com/renovatebot/renovate/master/license) [](https://codecov.io/gh/renovatebot/renovate) [](https://renovatebot.com/) +[](https://github.com/renovatebot/renovate/actions) ## Why Use Renovate?