From 6efab57cb46b875097876ec927caea3aca37ebf8 Mon Sep 17 00:00:00 2001 From: Nick Cabatoff Date: Sun, 28 Apr 2024 15:56:11 -0400 Subject: [PATCH] split image workflow from build (#299) Various GHA improvements. --- .github/workflows/build.yml | 53 ++++--------------------------------- .github/workflows/image.yml | 51 +++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 48 deletions(-) create mode 100644 .github/workflows/image.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d5822d..2a125b7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,55 +8,12 @@ jobs: with: go-version: '1.22' - - uses: actions/checkout@master + - uses: actions/checkout@v4 + with: + fetch-depth: 0 - run: make style - run: make vet - run: make test - - run: make build - - run: make integ - - image: - runs-on: ubuntu-latest - steps: - - name: setup buildx - id: buildx - uses: docker/setup-buildx-action@v1 - with: - version: latest - - - name: login to docker hub - if: github.event_name != 'pull_request' - uses: docker/login-action@v1 - with: - registry: docker.io - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - uses: actions/checkout@master - - - name: generate docker metadata - id: meta - uses: docker/metadata-action@v3 - with: - context: . - # list of Docker images to use as base name for tags - images: | - ncabatoff/process-exporter - # generate Docker tags based on the following events/attributes - tags: | - type=schedule - type=ref,event=branch - type=ref,event=pr - type=semver,pattern={{version}} - type=sha - - - name: build docker image and, if not PR, push - uses: docker/build-push-action@v2 - with: - file: ./Dockerfile - context: . - platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file + - run: make BRANCH=${{ github.head_ref || github.ref_name }} build + - run: make integ \ No newline at end of file diff --git a/.github/workflows/image.yml b/.github/workflows/image.yml new file mode 100644 index 0000000..3d248f9 --- /dev/null +++ b/.github/workflows/image.yml @@ -0,0 +1,51 @@ +on: + push: + branches: [master] + pull_request: + +jobs: + image: + runs-on: ubuntu-latest + steps: + - name: setup buildx + id: buildx + uses: docker/setup-buildx-action@v3 + with: + version: latest + + - name: login to docker hub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: generate docker metadata + id: meta + uses: docker/metadata-action@v5 + with: + # list of Docker images to use as base name for tags + images: | + ncabatoff/process-exporter + # generate Docker tags based on the following events/attributes + tags: | + type=schedule + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=sha + + - name: build docker image and, if not PR, push + uses: docker/build-push-action@v5 + with: + file: ./Dockerfile + context: . + platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file