Update GitHub actions to have jobs running in parallel

This commit is contained in:
Vincent Composieux 2020-05-04 21:02:27 +02:00
parent 548b6edc3e
commit c3fc22f53c
No known key found for this signature in database
GPG key ID: 7306974ABA6382AC
3 changed files with 72 additions and 22 deletions

View file

@ -1,52 +1,47 @@
# This is a basic workflow to help you get started with Actions name: Build and Publish (master)
name: CI
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on: on:
push: push:
branches: [ master ] branches: [ master ]
pull_request: pull_request:
branches: [ master ] branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs: jobs:
# This workflow contains a single job called "build" build-amd64:
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps: steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2 - uses: actions/checkout@v2
# Runs a single command using the runners shell
- name: Build and Push Docker Image (Linux - AMD64) - name: Build and Push Docker Image (Linux - AMD64)
uses: docker/build-push-action@v1 uses: docker/build-push-action@v1
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
repository: ekofr/pihole-exporter repository: ekofr/pihole-exporter
tag_with_sha: true
tags: amd64 tags: amd64
build_args: OS=linux,ARCH=amd64,IMAGE=scratch build_args: OS=linux,ARCH=amd64,IMAGE=scratch
build-arm32:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build and Push Docker Image (Linux - ARM32) - name: Build and Push Docker Image (Linux - ARM32)
uses: docker/build-push-action@v1 uses: docker/build-push-action@v1
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
repository: ekofr/pihole-exporter repository: ekofr/pihole-exporter
tag_with_sha: true
tags: arm32 tags: arm32
build_args: OS=linux,ARCH=arm32,IMAGE=arm32v7/alpine:3.11 build_args: OS=linux,ARCH=arm,IMAGE=arm32v7/alpine:3.11
build-arm64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build and Push Docker Image (Linux - ARM64) - name: Build and Push Docker Image (Linux - ARM64)
uses: docker/build-push-action@v1 uses: docker/build-push-action@v1
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
repository: ekofr/pihole-exporter repository: ekofr/pihole-exporter
tag_with_sha: true
tags: arm64 tags: arm64
build_args: OS=linux,ARCH=arm64,IMAGE=arm64v8/alpine:3.11 build_args: OS=linux,ARCH=arm64,IMAGE=arm64v8/alpine:3.11

55
.github/workflows/tag.yml vendored Normal file
View file

@ -0,0 +1,55 @@
name: Build and Publish (tag)
on:
push:
tags:
- '*'
jobs:
build-amd64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get the version
id: get_version
run: echo ::set-output name=TAG_NAME::${GITHUB_REF/refs\/tags\//}
- name: Build and Push Docker Image (Linux - AMD64)
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: ekofr/pihole-exporter
tags: amd64,${{ steps.get_version.outputs.TAG_NAME }}
build_args: OS=linux,ARCH=amd64,IMAGE=scratch
build-arm32:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get the version
id: get_version
run: echo ::set-output name=TAG_NAME::${GITHUB_REF/refs\/tags\//}
- name: Build and Push Docker Image (Linux - ARM32)
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: ekofr/pihole-exporter
tags: arm32,${{ steps.get_version.outputs.TAG_NAME }}
build_args: OS=linux,ARCH=arm,IMAGE=arm32v7/alpine:3.11
build-arm64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get the version
id: get_version
run: echo ::set-output name=TAG_NAME::${GITHUB_REF/refs\/tags\//}
- name: Build and Push Docker Image (Linux - ARM64)
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: ekofr/pihole-exporter
tags: arm64,${{ steps.get_version.outputs.TAG_NAME }}
build_args: OS=linux,ARCH=arm64,IMAGE=arm64v8/alpine:3.11

View file

@ -1,8 +1,8 @@
FROM golang:alpine as builder ARG IMAGE=scratch
ARG OS=linux ARG OS=linux
ARG ARCH=amd64 ARG ARCH=amd64
ARG IMAGE=scratch
FROM golang:alpine as builder
WORKDIR /go/src/github.com/eko/pihole-exporter WORKDIR /go/src/github.com/eko/pihole-exporter
COPY . . COPY . .