Skip to content

Commit

Permalink
add arm runner as matrix strategy runner
Browse files Browse the repository at this point in the history
  • Loading branch information
James-Mart committed Apr 15, 2024
1 parent 6ea8533 commit a01d095
Showing 1 changed file with 41 additions and 31 deletions.
72 changes: 41 additions & 31 deletions .github/workflows/tool-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,18 @@ on:
jobs:
tool-config:
name: tool-config
runs-on: ubuntu-latest
strategy:
matrix:
protocol: ["http", "https"]
runner: [ubuntu-latest, arm-runner-1]
include:
- platform: "linux/amd64"
platform_short: "amd"
runner: ubuntu-latest
- platform: "linux/arm64"
platform_short: "arm"
runner: arm-runner-1
runs-on: ${{ matrix.runner }}

steps:
- name: Checkout code
Expand All @@ -34,10 +42,32 @@ jobs:
- name: Building ${{ steps.prep.outputs.tags }}
run: true

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: 'arm64'
- name: Runner ${{ matrix.runner }}
run: true

- name: Install docker on linux-arm-runner
if: matrix.runner == 'arm-runner-1'
run: |
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Give current user permission to run docker without sudo
sudo usermod -aG docker $USER
sudo apt-get install acl
sudo setfacl --modify user:$USER:rw /var/run/docker.sock
- name: Config docker buildx network
uses: docker/setup-buildx-action@v3
Expand All @@ -62,8 +92,8 @@ jobs:
build-args: |
protocol=${{ matrix.protocol }}
tags: ${{ steps.prep.outputs.tags }}
platforms: linux/amd64,linux/arm64
outputs: type=image,annotation-index.org.opencontainers.image.description=Config files for admin-sys dashboard tools connecting to psinode over ${{ matrix.protocol }} on 8080
platforms: ${{ matrix.platform }}
outputs: type=image,annotation-index.org.opencontainers.image.description=Config files for admin dashboard tools connecting to psinode over ${{ matrix.protocol }}

- name: (PR Only) - Build image archive
if: ${{ github.event_name == 'pull_request' }}
Expand All @@ -74,33 +104,13 @@ jobs:
build-args: |
protocol=${{ matrix.protocol }}
tags: ${{ steps.prep.outputs.tags }}
platforms: linux/amd64
outputs: type=docker,dest=${{ matrix.protocol }}-tool-config-image.tar

- name: (PR Only) - Build separate arm image archive
if: ${{ github.event_name == 'pull_request' }}
uses: docker/build-push-action@v5
with:
context: .
file: docker/tool-config.Dockerfile
build-args: |
protocol=${{ matrix.protocol }}
tags: ${{ steps.prep.outputs.tags }}
platforms: linux/arm64
outputs: type=docker,dest=${{ matrix.protocol }}-tool-config-arm-image.tar
platforms: ${{ matrix.platform }}
outputs: type=docker,dest=${{ matrix.protocol }}-tool-config-${{ matrix.platform_short }}-image.tar

- name: (PR only) - Upload image archive as artifact
if: ${{ github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.protocol }}-tool-config-image
path: ${{ matrix.protocol }}-tool-config-image.tar
name: ${{ matrix.protocol }}-tool-config-${{ matrix.platform_short }}-image
path: ${{ matrix.protocol }}-tool-config-${{ matrix.platform_short }}-image.tar
retention-days: 1

- name: (PR only) - Upload arm image archive as artifact
if: ${{ github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.protocol }}-tool-config-arm-image
path: ${{ matrix.protocol }}-tool-config-arm-image.tar
retention-days: 1

0 comments on commit a01d095

Please sign in to comment.