Optimize docker memory #634
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PR Workflow | |
on: pull_request_target | |
jobs: | |
release-snapshot: | |
name: Release snapshot | |
strategy: | |
matrix: | |
runner-platform: | |
- ubuntu-latest | |
- buildjet-4vcpu-ubuntu-2204-arm | |
include: | |
- runner-platform: ubuntu-latest | |
build-arch: linux/amd64 | |
tagged-platform: amd64 | |
- runner-platform: buildjet-4vcpu-ubuntu-2204-arm | |
build-arch: linux/arm64 | |
tagged-platform: arm64 | |
runs-on: ${{ matrix.runner-platform }} | |
steps: | |
- name: Set up Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Cache Docker layers | |
# AWS data transfer is pricy | |
if: ${{ matrix.runner-platform != 'buildjet-4vcpu-ubuntu-2204-arm' }} | |
uses: actions/cache@v2 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-prs-${{ matrix.build-arch }}-${{ github.event.pull_request.head.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx-prs-${{ matrix.build-arch }} | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Get current time | |
uses: josStorer/get-current-time@v2 | |
id: current-time | |
- name: Build and push | |
id: docker_build | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
push: true | |
tags: codetheweb/muse:${{ github.event.pull_request.head.sha }}-${{ matrix.tagged-platform }} | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache,mode=min | |
platforms: ${{ matrix.build-arch }} | |
build-args: | | |
COMMIT_HASH=${{ github.sha }} | |
BUILD_DATE=${{ steps.current-time.outputs.time }} | |
combine-and-comment: | |
name: Combine platform tags and leave comment | |
runs-on: ubuntu-latest | |
needs: release-snapshot | |
steps: | |
- name: Set up Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Combine tags | |
run: docker buildx imagetools create -t 'codetheweb/muse:pr-${{ github.event.number }}' -t 'codetheweb/muse:${{ github.event.pull_request.head.sha }}' 'codetheweb/muse:${{ github.event.pull_request.head.sha }}-arm64' 'codetheweb/muse:${{ github.event.pull_request.head.sha }}-amd64' | |
- name: Create comment | |
uses: marocchino/sticky-pull-request-comment@v2 | |
with: | |
header: "pr-release" | |
message: | | |
#### :package: A new release has been made for this pull request. | |
To play around with this PR, pull `codetheweb/muse:pr-${{ github.event.number }}` or `codetheweb/muse:${{ github.event.pull_request.head.sha }}`. | |
Images are available for x86_64 and ARM64. | |
> Latest commit: ${{ github.event.pull_request.head.sha }} |