11# Snipe-IT Docker image build for hub.docker.com
2- name : Docker ARM images (Ubuntu and Alpine )
2+ name : Docker images (Ubuntu)
33
44# Run this Build for all pushes to 'master' or develop branch, or tagged releases.
55# Also run for PRs to ensure PR doesn't break Docker build process
@@ -19,10 +19,10 @@ permissions:
1919 contents : read
2020
2121jobs :
22- docker-ubuntu-arm :
22+ docker :
2323 # Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
2424 if : github.repository == 'grokability/snipe-it'
25- runs-on : ubuntu-24.04-arm
25+ runs-on : ubuntu-latest
2626 env :
2727 # Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
2828 # For a new commit on default branch (master), use the literal tag 'latest' on Docker image.
7777 with :
7878 context : .
7979 file : ./Dockerfile
80- platforms : linux/arm64
81- # For pull requests, we run the Docker build (to ensure no PR changes break the build),
82- # but we ONLY do an image push to DockerHub if it's NOT a PR
83- push : ${{ github.event_name != 'pull_request' }}
84- # Use tags / labels provided by 'docker/metadata-action' above
85- tags : ${{ steps.meta_build.outputs.tags }}
86- labels : ${{ steps.meta_build.outputs.labels }}
87- docker-alpine-arm :
88- # Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
89- if : github.repository == 'grokability/snipe-it'
90- runs-on : ubuntu-24.04-arm
91- env :
92- # Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
93- # For a new commit on default branch (master), use the literal tag 'latest' on Docker image.
94- # For a new commit on other branches, use the branch name as the tag for Docker image.
95- # For a new tag, copy that tag name as the tag for Docker image.
96- IMAGE_TAGS : |
97- type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }},suffix=-alpine
98- type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }},suffix=-alpine
99- type=ref,event=tag,suffix=-alpine
100- type=semver,pattern=v{{major}}-latest-alpine
101- # Define default tag "flavor" for docker/metadata-action per
102- # https://github.com/docker/metadata-action#flavor-input
103- # We turn off 'latest' tag by default.
104- TAGS_FLAVOR : |
105- latest=false
106-
107- steps :
108- # https://github.com/actions/checkout
109- - name : Checkout codebase
110- uses : actions/checkout@v4
111-
112- # https://github.com/docker/setup-buildx-action
113- - name : Setup Docker Buildx
114- uses : docker/setup-buildx-action@v3
115-
116- # https://github.com/docker/login-action
117- - name : Login to DockerHub
118- # Only login if not a PR, as PRs only trigger a Docker build and not a push
119- if : github.event_name != 'pull_request'
120- uses : docker/login-action@v3
121- with :
122- username : ${{ secrets.DOCKER_USERNAME }}
123- password : ${{ secrets.DOCKER_ACCESS_TOKEN }}
124-
125- # ##############################################
126- # Build/Push the 'snipe/snipe-it' image
127- # ##############################################
128- # https://github.com/docker/metadata-action
129- # Get Metadata for docker_build step below
130- - name : Sync metadata (tags, labels) from GitHub to Docker for 'snipe-it' image
131- id : meta_build
132- uses : docker/metadata-action@v5
133- with :
134- images : snipe/snipe-it
135- tags : ${{ env.IMAGE_TAGS }}
136- flavor : ${{ env.TAGS_FLAVOR }}
137-
138- # https://github.com/docker/build-push-action
139- - name : Build and push 'snipe-it' image
140- id : docker_build
141- uses : docker/build-push-action@v6
142- with :
143- context : .
144- file : ./Dockerfile.alpine
145- platforms : linux/arm64
80+ platforms : linux/amd64,linux/arm64
14681 # For pull requests, we run the Docker build (to ensure no PR changes break the build),
14782 # but we ONLY do an image push to DockerHub if it's NOT a PR
14883 push : ${{ github.event_name != 'pull_request' }}
0 commit comments