diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index dd9bf3c..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: 2 - -jobs: - tests: - machine: - enabled: true - steps: - - checkout - - run: | - make test || exit 1 - -workflows: - version: 2 - test_and_release: - jobs: - - tests: - filters: - tags: - only: /.*/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..7753844 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,55 @@ +name: Release + +on: push + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Run on architecture ppc64le + uses: uraimo/run-on-arch-action@v2.1.1 + with: + arch: ppc64le + distro: alpine_latest + env: | + DOCKER_USER: ${{ secrets.DOCKER_USER }} + DOCKER_PASS: ${{ secrets.DOCKER_PASS }} + githubToken: ${{ secrets.GITHUB_TOKEN }} + run: | + apk add --upd alpine-sdk docker + make release + + # - name: Run on architecture armv7 + # uses: uraimo/run-on-arch-action@v2.1.1 + # with: + # arch: armv7 + # distro: alpine_latest + # githubToken: ${{ secrets.GITHUB_TOKEN }} + # env: | + # GOARCH: amd64 + # GOOS: linux + # run: | + # apk add --upd alpine-sdk docker + # make release + + - name: Run on architecture aarch64 + uses: uraimo/run-on-arch-action@v2.1.1 + with: + arch: aarch64 + distro: alpine_latest + githubToken: ${{ secrets.GITHUB_TOKEN }} + run: | + apk add --upd alpine-sdk docker + make release + + - name: Run on architecture amd64 + run: | + make release + make test + + - name: Manifest + run: | + make release-manifest diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0717ac3..0000000 --- a/.travis.yml +++ /dev/null @@ -1,57 +0,0 @@ -language: ruby -services: - - docker -env: - global: - - VERSION=1.9.6 - - IMAGE=imega/base-builder - - ALPINE_VERSION=3.13 - -stages: - - Test - - Arch-Release - - Manifest-Release - -jobs: - include: - - stage: Test - arch: amd64 - os: linux - script: make test - - stage: Test - arch: ppc64le - os: linux - script: make test - - stage: Test - arch: arm64 - os: linux - script: make test - - - stage: Arch-Release - if: branch = master - os: linux - arch: amd64 - script: - - ARCH_RELEASE=0 - - docker pull $IMAGE:$VERSION-$TRAVIS_CPU_ARCH || ARCH_RELEASE=1 - - "[ ${ARCH_RELEASE} == 1 ] && (make release DOCKER_USER=$DOCKER_USER DOCKER_PASS=$DOCKER_PASS IMAGE=$IMAGE TAG=$VERSION)" - - stage: Arch-Release - if: branch = master - os: linux - arch: ppc64le - script: - - "docker pull $IMAGE:$VERSION-$TRAVIS_CPU_ARCH || make release DOCKER_USER=$DOCKER_USER DOCKER_PASS=$DOCKER_PASS IMAGE=$IMAGE TAG=$VERSION" - - stage: Arch-Release - if: branch = master - os: linux - arch: arm64 - script: - - "docker pull $IMAGE:$VERSION-$TRAVIS_CPU_ARCH || make release DOCKER_USER=$DOCKER_USER DOCKER_PASS=$DOCKER_PASS IMAGE=$IMAGE TAG=$VERSION" - - - stage: Manifest-Release - if: branch = master - arch: amd64 - os: linux - script: - - export DOCKER_CLI_EXPERIMENTAL=enabled - - "docker pull $IMAGE:$VERSION || make release-manifest DOCKER_USER=$DOCKER_USER DOCKER_PASS=$DOCKER_PASS IMAGE=$IMAGE TAG=$VERSION || exit 0" diff --git a/Makefile b/Makefile index fca2921..f8d10fb 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ +TAG=1.9.7 +ALPINE_VERSION=3.15 + IMAGE=imega/base-builder -TAG=latest -ALPINE_VERSION=3.11 ARCH=$(shell uname -m) ifeq ($(ARCH),aarch64) @@ -12,23 +13,31 @@ ifeq ($(ARCH),x86_64) endif build: - @docker build --build-arg VERSION=$(TAG) \ + docker build --build-arg VERSION=$(TAG) \ --build-arg ALPINE_VERSION=$(ALPINE_VERSION) \ + --platform $(ARCH) \ -t $(IMAGE):$(TAG)-$(ARCH) . + @docker inspect $(IMAGE):$(TAG)-$(ARCH) login: @docker login --username $(DOCKER_USER) --password $(DOCKER_PASS) release: login build @docker tag $(IMAGE):$(TAG)-$(ARCH) $(IMAGE):latest-$(ARCH) - @docker push $(IMAGE):$(TAG)-$(ARCH) - @docker push $(IMAGE):latest-$(ARCH) +#@docker push $(IMAGE):$(TAG)-$(ARCH) +#@docker push $(IMAGE):latest-$(ARCH) release-manifest: login - docker manifest create $(IMAGE):$(TAG) $(IMAGE):$(TAG)-amd64 $(IMAGE):$(TAG)-ppc64le $(IMAGE):$(TAG)-arm64 - docker manifest create $(IMAGE):latest $(IMAGE):latest-amd64 $(IMAGE):latest-ppc64le $(IMAGE):latest-arm64 - docker manifest push $(IMAGE):$(TAG) - docker manifest push $(IMAGE):latest + docker manifest create $(IMAGE):$(TAG) \ + $(IMAGE):$(TAG)-amd64 \ + $(IMAGE):$(TAG)-ppc64le \ + $(IMAGE):$(TAG)-arm64 + docker manifest create $(IMAGE):latest \ + $(IMAGE):latest-amd64 \ + $(IMAGE):latest-ppc64le \ + $(IMAGE):latest-arm64 +#docker manifest push $(IMAGE):$(TAG) +#docker manifest push $(IMAGE):latest test: build $(MAKE) test -C tests IMAGE=$(IMAGE) TAG=$(TAG) diff --git a/build.sh b/build.sh index 0aa71df..c1af5f5 100755 --- a/build.sh +++ b/build.sh @@ -21,8 +21,8 @@ esac done cat << 'EOF' > /etc/apk/repositories -http://dl-cdn.alpinelinux.org/alpine/v3.13/main -http://dl-cdn.alpinelinux.org/alpine/v3.13/community +http://dl-cdn.alpinelinux.org/alpine/v3.15/main +http://dl-cdn.alpinelinux.org/alpine/v3.15/community @testing http://dl-cdn.alpinelinux.org/alpine/edge/testing @main http://dl-cdn.alpinelinux.org/alpine/edge/main @community http://dl-cdn.alpinelinux.org/alpine/edge/community @@ -57,6 +57,10 @@ http://dl-cdn.alpinelinux.org/alpine/v3.13/community @v312community http://dl-cdn.alpinelinux.org/alpine/v3.12/community @v313 http://dl-cdn.alpinelinux.org/alpine/v3.13/main @v313community http://dl-cdn.alpinelinux.org/alpine/v3.13/community +@v314 http://dl-cdn.alpinelinux.org/alpine/v3.13/main +@v314community http://dl-cdn.alpinelinux.org/alpine/v3.13/community +@v315 http://dl-cdn.alpinelinux.org/alpine/v3.15/main +@v315community http://dl-cdn.alpinelinux.org/alpine/v3.15/community EOF apk --repositories-file /etc/apk/repositories --update --allow-untrusted --initdb --no-cache --root $ROOTFS add $PACKAGES