Skip to content

Commit

Permalink
Merge pull request #2308 from sparklemotion/2271-generate-ci-images
Browse files Browse the repository at this point in the history
ci: generate and use images to/from ghcr.io
  • Loading branch information
flavorjones committed Aug 13, 2021
2 parents c12b06d + 4ca9c8a commit 3ae1f38
Show file tree
Hide file tree
Showing 7 changed files with 74 additions and 85 deletions.
18 changes: 10 additions & 8 deletions .github/workflows/ci.yml
Expand Up @@ -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
Expand All @@ -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:
Expand Down Expand Up @@ -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:
Expand All @@ -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:
Expand All @@ -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:
Expand All @@ -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:
Expand All @@ -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:
Expand All @@ -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:
Expand All @@ -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:
Expand Down
98 changes: 37 additions & 61 deletions .github/workflows/generate-ci-images.yml
Expand Up @@ -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}}
2 changes: 1 addition & 1 deletion .github/workflows/truffle.yml
Expand Up @@ -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:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/upstream.yml
Expand Up @@ -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:
Expand All @@ -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:
Expand Down Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion oci-images/nokogiri-test/truffle-nightly.dockerfile
@@ -1,4 +1,4 @@
FROM flavorjones/truffleruby:nightly
FROM ghcr.io/flavorjones/truffleruby:nightly

# -*- dockerfile -*-

Expand Down
2 changes: 1 addition & 1 deletion 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" %>
Expand Down
31 changes: 21 additions & 10 deletions rakelib/docker.rake
Expand Up @@ -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 = <<EOF
%{job_name}:
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}}
EOF

image_template = <<EOF
- name: %{job_name}
uses: docker/build-push-action@v2
with:
context: "."
push: true
tags: %{image_name}
file: %{dockerfile_path}
- name: Log the image digest
run: echo ${{steps.docker_build.outputs.digest}}
EOF

puts "writing #{filename} ..."
Expand All @@ -76,11 +87,11 @@ EOF
Dir.glob(File.join(IMAGE_DIR, "*.dockerfile")).each do |dockerfile|
image_tag = Regexp.new("(.*)\.dockerfile").match(File.basename(dockerfile))[1]
template_params = {
job_name: image_tag.gsub(/[^a-zA-Z0-9]/, "_"),
job_name: image_tag,
image_name: "#{IMAGE_NAME}:#{image_tag}",
dockerfile_path: dockerfile,
}
io.write(job_template % template_params)
io.write(image_template % template_params)
end
end
end
Expand Down

0 comments on commit 3ae1f38

Please sign in to comment.