diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f58906c14..d0f97ad46 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,6 +17,8 @@ on: - 'Dockerfile' - 'integration/**' - 'scripts/**' +env: + GO_VERSION: '1.20.6' jobs: test: @@ -25,7 +27,10 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v4 with: - go-version: '1.20.6' + go-version: ${{ env.GO_VERSION }} + + - run: pwd + - run: ls -l - run: make - run: make test integration: @@ -40,5 +45,54 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v4 with: - go-version: '1.20.6' + go-version: ${{ env.GO_VERSION }} - run: make integration + + integration-arm64: + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + containerd: ["1.7.0"] + arch: ["arm64"] + env: + DOCKER_BUILD_ARGS: "CONTAINERD_VERSION=${{ matrix.containerd }}" + steps: + - uses: actions/checkout@v4 + - uses: uraimo/run-on-arch-action@v2.5.1 + id: integration-tests-arm64 + with: + arch: aarch64 + distro: ubuntu20.04 + dockerRunArgs: | + -v /var/run/docker.sock:/var/run/docker.sock + -v /tmp:/tmp + githubToken: ${{ github.token }} + shell: /bin/bash + install: | + apt-get update + apt-get -y install curl gcc git libz-dev make wget + + wget https://go.dev/dl/go${{ env.GO_VERSION }}.linux-arm64.tar.gz + rm -rf /usr/local/go && tar -C /usr/local -xzf go${{ env.GO_VERSION }}.linux-arm64.tar.gz + + curl -fsSL https://get.docker.com -o get-docker.sh + sh ./get-docker.sh --version + + # wget https://github.com/containerd/containerd/releases/download/v{$CONTAINERD_VERSION}/containerd-{$CONTAINERD_VERSION}-linux-arm64.tar.gz + # tar Cxzvf /usr/local containerd-{$CONTAINERD_VERSION}-linux-ard64.tar.gz + + curl -SL https://github.com/docker/compose/releases/download/v2.19.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose + chmod +x /usr/local/bin/docker-compose + run: | + dpkg --add-architecture arm64 + export PATH=$PATH:/usr/local/go/bin + + uname -m + go version + docker info + docker-compose --version + + git clone https://github.com/awslabs/soci-snapshotter.git + cd soci-snapshotter/ + STATIC=1 make integration \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 401550137..c37edb14d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,6 +26,8 @@ ARG TARGETARCH COPY . $GOPATH/src/github.com/awslabs/soci-snapshotter ENV GOPROXY direct RUN apt-get update -y && apt-get install -y libbtrfs-dev libseccomp-dev libz-dev gcc fuse pigz +RUN if [ "$TARGETARCH" = "aarch64" ] ; then apt-get install -y glibc-static ; fi + RUN cp $GOPATH/src/github.com/awslabs/soci-snapshotter/out/soci /usr/local/bin/ && \ cp $GOPATH/src/github.com/awslabs/soci-snapshotter/out/soci-snapshotter-grpc /usr/local/bin/ && \ mkdir /etc/soci-snapshotter-grpc && \