From 177bc1786c3bd1cb1d6291ccda7b33a2c55f10d2 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 13 Aug 2021 14:52:14 -0400 Subject: [PATCH 1/3] ci: ensure CI images all use the same Gemfile.lock Part of #2271 [skip ci] --- .github/workflows/generate-ci-images.yml | 98 +++++++++--------------- rakelib/docker.rake | 31 +++++--- 2 files changed, 58 insertions(+), 71 deletions(-) diff --git a/.github/workflows/generate-ci-images.yml b/.github/workflows/generate-ci-images.yml index e7f8cefdbe..09bd3b413a 100644 --- a/.github/workflows/generate-ci-images.yml +++ b/.github/workflows/generate-ci-images.yml @@ -7,99 +7,75 @@ on: - cron: "0 5 * * 3" # At 05:00 on Wednesday # https://crontab.guru/#0_5_*_*_3 # reference: https://github.com/marketplace/actions/build-and-push-docker-images jobs: - alpine: + build_images: runs-on: ubuntu-latest steps: + - uses: actions/checkout@v2 + with: + submodules: true + - uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.0" + bundler-cache: true - uses: docker/setup-buildx-action@v1 - - uses: docker/build-push-action@v2 - id: docker_build + - uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{github.actor}} + password: ${{secrets.GITHUB_TOKEN}} + - name: alpine + uses: docker/build-push-action@v2 with: + context: "." push: true tags: ghcr.io/sparklemotion/nokogiri-test:alpine file: oci-images/nokogiri-test/alpine.dockerfile - - name: Log the image digest - run: echo ${{steps.docker_build.outputs.digest}} - bionic: - runs-on: ubuntu-latest - steps: - - uses: docker/setup-buildx-action@v1 - - uses: docker/build-push-action@v2 - id: docker_build + - name: bionic + uses: docker/build-push-action@v2 with: + context: "." push: true tags: ghcr.io/sparklemotion/nokogiri-test:bionic file: oci-images/nokogiri-test/bionic.dockerfile - - name: Log the image digest - run: echo ${{steps.docker_build.outputs.digest}} - bionic32: - runs-on: ubuntu-latest - steps: - - uses: docker/setup-buildx-action@v1 - - uses: docker/build-push-action@v2 - id: docker_build + - name: bionic32 + uses: docker/build-push-action@v2 with: + context: "." push: true tags: ghcr.io/sparklemotion/nokogiri-test:bionic32 file: oci-images/nokogiri-test/bionic32.dockerfile - - name: Log the image digest - run: echo ${{steps.docker_build.outputs.digest}} - mri_2_5: - runs-on: ubuntu-latest - steps: - - uses: docker/setup-buildx-action@v1 - - uses: docker/build-push-action@v2 - id: docker_build + - name: mri-2.5 + uses: docker/build-push-action@v2 with: + context: "." push: true tags: ghcr.io/sparklemotion/nokogiri-test:mri-2.5 file: oci-images/nokogiri-test/mri-2.5.dockerfile - - name: Log the image digest - run: echo ${{steps.docker_build.outputs.digest}} - mri_2_6: - runs-on: ubuntu-latest - steps: - - uses: docker/setup-buildx-action@v1 - - uses: docker/build-push-action@v2 - id: docker_build + - name: mri-2.6 + uses: docker/build-push-action@v2 with: + context: "." push: true tags: ghcr.io/sparklemotion/nokogiri-test:mri-2.6 file: oci-images/nokogiri-test/mri-2.6.dockerfile - - name: Log the image digest - run: echo ${{steps.docker_build.outputs.digest}} - mri_2_7: - runs-on: ubuntu-latest - steps: - - uses: docker/setup-buildx-action@v1 - - uses: docker/build-push-action@v2 - id: docker_build + - name: mri-2.7 + uses: docker/build-push-action@v2 with: + context: "." push: true tags: ghcr.io/sparklemotion/nokogiri-test:mri-2.7 file: oci-images/nokogiri-test/mri-2.7.dockerfile - - name: Log the image digest - run: echo ${{steps.docker_build.outputs.digest}} - mri_3_0: - runs-on: ubuntu-latest - steps: - - uses: docker/setup-buildx-action@v1 - - uses: docker/build-push-action@v2 - id: docker_build + - name: mri-3.0 + uses: docker/build-push-action@v2 with: + context: "." push: true tags: ghcr.io/sparklemotion/nokogiri-test:mri-3.0 file: oci-images/nokogiri-test/mri-3.0.dockerfile - - name: Log the image digest - run: echo ${{steps.docker_build.outputs.digest}} - truffle_nightly: - runs-on: ubuntu-latest - steps: - - uses: docker/setup-buildx-action@v1 - - uses: docker/build-push-action@v2 - id: docker_build + - name: truffle-nightly + uses: docker/build-push-action@v2 with: + context: "." push: true tags: ghcr.io/sparklemotion/nokogiri-test:truffle-nightly file: oci-images/nokogiri-test/truffle-nightly.dockerfile - - name: Log the image digest - run: echo ${{steps.docker_build.outputs.digest}} diff --git a/rakelib/docker.rake b/rakelib/docker.rake index 9f40fe5c56..351161909b 100644 --- a/rakelib/docker.rake +++ b/rakelib/docker.rake @@ -52,21 +52,32 @@ on: - cron: "0 5 * * 3" # At 05:00 on Wednesday # https://crontab.guru/#0_5_*_*_3 # reference: https://github.com/marketplace/actions/build-and-push-docker-images jobs: -EOF - - job_template = < Date: Fri, 13 Aug 2021 15:39:53 -0400 Subject: [PATCH 2/3] ci: use the ghcr images Also run ci.yml on a schedule to make sure we're integration testing against the latest images once they're generated. Part of #2271 --- .github/workflows/ci.yml | 18 ++++++++++-------- .github/workflows/truffle.yml | 2 +- .github/workflows/upstream.yml | 6 +++--- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 454696d209..de786fed17 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,6 +4,8 @@ concurrency: cancel-in-progress: true on: workflow_dispatch: + schedule: + - cron: "0 8 * * 3" # At 08:00 on Wednesday # https://crontab.guru/#0_8_*_*_3 push: branches: - main @@ -19,7 +21,7 @@ jobs: rubocop: runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:mri-3.0 + image: ghcr.io/sparklemotion/nokogiri-test:mri-3.0 steps: - uses: actions/checkout@v2 with: @@ -61,7 +63,7 @@ jobs: sys: ["enable"] runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:${{matrix.image}} + image: ghcr.io/sparklemotion/nokogiri-test:${{matrix.image}} steps: - uses: actions/checkout@v1 # v1 because of https://github.com/actions/checkout/issues/334 with: @@ -79,7 +81,7 @@ jobs: ruby: ["2.5", "2.6", "2.7", "3.0"] runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:mri-${{matrix.ruby}} + image: ghcr.io/sparklemotion/nokogiri-test:mri-${{matrix.ruby}} steps: - uses: actions/checkout@v2 with: @@ -102,7 +104,7 @@ jobs: ruby: ["2.5", "2.6", "2.7", "3.0"] runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:mri-${{matrix.ruby}} + image: ghcr.io/sparklemotion/nokogiri-test:mri-${{matrix.ruby}} steps: - uses: actions/checkout@v2 with: @@ -124,7 +126,7 @@ jobs: sys: ["enable"] runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:alpine + image: ghcr.io/sparklemotion/nokogiri-test:alpine steps: - uses: actions/checkout@v1 # v1 because of https://github.com/actions/checkout/issues/334 with: @@ -142,7 +144,7 @@ jobs: sys: ["disable"] runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:alpine + image: ghcr.io/sparklemotion/nokogiri-test:alpine steps: - uses: actions/checkout@v1 # v1 because of https://github.com/actions/checkout/issues/334 with: @@ -163,7 +165,7 @@ jobs: BUNDLE_GEMFILE: "Gemfile-libxml-ruby" runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:mri-${{matrix.ruby}} + image: ghcr.io/sparklemotion/nokogiri-test:mri-${{matrix.ruby}} steps: - uses: actions/checkout@v2 with: @@ -188,7 +190,7 @@ jobs: BUNDLE_GEMFILE: "Gemfile-libxml-ruby" runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:mri-${{matrix.ruby}} + image: ghcr.io/sparklemotion/nokogiri-test:mri-${{matrix.ruby}} steps: - uses: actions/checkout@v2 with: diff --git a/.github/workflows/truffle.yml b/.github/workflows/truffle.yml index 12a717dd2d..cd15d06558 100644 --- a/.github/workflows/truffle.yml +++ b/.github/workflows/truffle.yml @@ -19,7 +19,7 @@ jobs: continue-on-error: true runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:truffle-nightly + image: ghcr.io/sparklemotion/nokogiri-test:truffle-nightly steps: - uses: actions/checkout@v2 with: diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index 262349d607..c8b762d20c 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -21,7 +21,7 @@ jobs: xmlsoft-head: runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:mri-3.0 + image: ghcr.io/sparklemotion/nokogiri-test:mri-3.0 steps: - uses: actions/checkout@v2 with: @@ -46,7 +46,7 @@ jobs: needs: ["xmlsoft-head"] runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:mri-3.0 + image: ghcr.io/sparklemotion/nokogiri-test:mri-3.0 steps: - uses: actions/checkout@v2 with: @@ -138,7 +138,7 @@ jobs: html5lib-tests: runs-on: ubuntu-latest container: - image: flavorjones/nokogiri-test:mri-3.0 + image: ghcr.io/sparklemotion/nokogiri-test:mri-3.0 steps: - uses: actions/checkout@v2 with: From 4ca9c8a56ae994d650c3180a1ce70528b68ca324 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 13 Aug 2021 16:07:25 -0400 Subject: [PATCH 3/3] docker: base truffle test image on ghcr.io/flavorjones/truffleruby --- oci-images/nokogiri-test/truffle-nightly.dockerfile | 2 +- oci-images/nokogiri-test/truffle.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/oci-images/nokogiri-test/truffle-nightly.dockerfile b/oci-images/nokogiri-test/truffle-nightly.dockerfile index 4224001b54..f7ec299419 100644 --- a/oci-images/nokogiri-test/truffle-nightly.dockerfile +++ b/oci-images/nokogiri-test/truffle-nightly.dockerfile @@ -1,4 +1,4 @@ -FROM flavorjones/truffleruby:nightly +FROM ghcr.io/flavorjones/truffleruby:nightly # -*- dockerfile -*- diff --git a/oci-images/nokogiri-test/truffle.erb b/oci-images/nokogiri-test/truffle.erb index 80d840f90b..778cb578ee 100644 --- a/oci-images/nokogiri-test/truffle.erb +++ b/oci-images/nokogiri-test/truffle.erb @@ -1,4 +1,4 @@ -FROM flavorjones/truffleruby:<%= version %> +FROM ghcr.io/flavorjones/truffleruby:<%= version %> <%= File.read "debian-prelude.step" %>