Skip to content

Commit

Permalink
build: Remove outdated multiarch/alpine dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
sebbo2002 committed Mar 3, 2024
1 parent 23597fb commit d324b3f
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 84 deletions.
177 changes: 94 additions & 83 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ jobs:
generate-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: 'npm'
node-version: '20'
Expand All @@ -25,116 +25,127 @@ jobs:
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
- uses: actions/upload-artifact@v1
- uses: actions/upload-artifact@v4
with:
name: version
path: ./artifact
if-no-files-found: error

build-containers:
runs-on: ubuntu-latest
needs: [generate-version]
strategy:
matrix:
image: [x86_64, arm64, aarch64, amd64, armhf, i386]
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: version
path: version
- name: 🔧 Set up QEMU
uses: actions/download-artifact@v4
- name: 🔧 Set up Buildx
id: buildx
uses: docker/setup-buildx-action@master
- name: 🔐 Login to GitHub Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
registry: docker.pkg.github.com
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: 🔐 Login to DockerHub
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: prepare, build & test
- name: ℹ️ Set Build Variables
id: buildVars
run: |
docker pull multiarch/qemu-user-static:register
docker run --rm --privileged multiarch/qemu-user-static:register --reset
VERSION=$(cat ./version/release.json| jq .version -r)
BRANCH=$(git rev-parse --abbrev-ref HEAD)
mv -f ./version/package.json ./
mv -f ./version/package-lock.json ./
rm -rf ./version
echo "------"
echo "Version: ${VERSION}"
echo "Branch: ${GITHUB_REF#refs/heads/}"
echo "Flavour: ${{ matrix.image }}"
echo "Client Channel: ${CLIENT_TAG}"
echo "------"
echo "date=$(date +'%Y-%m-%d %H:%M:%S')" >> $GITHUB_OUTPUT
echo "version=$(cat ./version/release.json| jq .version -r)" >> $GITHUB_OUTPUT
export BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo "branch=${BRANCH}" >> $GITHUB_OUTPUT
if [[ "${BRANCH}" == "main" ]]
then
CLIENT_TAG="latest"
DOCKER_TAG="latest"
NEXT=""
echo "clientTag=latest" >> $GITHUB_OUTPUT
echo "next=" >> $GITHUB_OUTPUT
else
CLIENT_TAG="next"
DOCKER_TAG="next"
NEXT="1"
echo "clientTag=next" >> $GITHUB_OUTPUT
echo "next=1" >> $GITHUB_OUTPUT
fi
docker pull "multiarch/alpine:${{ matrix.image }}-latest-stable"
docker pull "ubud/server:next-${{ matrix.image }}-base" || true
docker pull "ubud/server:next-${{ matrix.image }}" || true
docker build \
--target build-container \
--build-arg BASEIMAGE="multiarch/alpine:${{ matrix.image }}-latest-stable" \
--build-arg NODE_ENV="production" \
--build-arg CLIENT_TAG="${CLIENT_TAG}" \
--build-arg NEXT="${NEXT}" \
--cache-from "ubud/server:next-${{ matrix.image }}-base" \
-t "ubud/server:${VERSION}-${{ matrix.image }}-base" .
docker build \
--build-arg BASEIMAGE="multiarch/alpine:${{ matrix.image }}-latest-stable" \
--build-arg NODE_ENV="production" \
--build-arg CLIENT_TAG="${CLIENT_TAG}" \
--build-arg NEXT="${NEXT}" \
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
--build-arg VERSION="${VERSION}" \
--cache-from "ubud/server:next-${{ matrix.image }}-base" \
--cache-from "ubud/server:next-${{ matrix.image }}" \
-t "ubud/server:${VERSION}-${{ matrix.image }}" .
docker tag "ubud/server:${VERSION}-${{ matrix.image }}" "ubud/server:${DOCKER_TAG}-${{ matrix.image }}"
docker tag "ubud/server:${VERSION}-${{ matrix.image }}-base" "ubud/server:${DOCKER_TAG}-${{ matrix.image }}-base"
docker tag "ubud/server:${VERSION}-${{ matrix.image }}" "docker.pkg.github.com/ubud-app/server/${{ matrix.image }}:${VERSION}"
docker tag "ubud/server:${VERSION}-${{ matrix.image }}" "docker.pkg.github.com/ubud-app/server/${{ matrix.image }}:${DOCKER_TAG}"
docker push "ubud/server:${VERSION}-${{ matrix.image }}"
docker push "ubud/server:${DOCKER_TAG}-${{ matrix.image }}"
docker push "ubud/server:${DOCKER_TAG}-${{ matrix.image }}-base"
docker push "docker.pkg.github.com/ubud-app/server/${{ matrix.image }}:${VERSION}"
docker push "docker.pkg.github.com/ubud-app/server/${{ matrix.image }}:${DOCKER_TAG}"
env:
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
cat $GITHUB_OUTPUT
mv -f ./version/package.json ./
mv -f ./version/package-lock.json ./
rm -rf ./version
- name: 🪄 Build and push
id: docker-build-gh
uses: docker/build-push-action@v5
with:
context: .
github-token: ${{ secrets.GITHUB_TOKEN }}
builder: ${{ steps.buildx.outputs.name }}
platforms: linux/amd64,linux/arm64
pull: true
push: true
tags: |
ghcr.io/${{ github.repository }}:${{ github.sha }}
ghcr.io/${{ github.repository }}:cache-${{ hashFiles('package*.json') }}
labels: |
org.opencontainers.image.authors=${{ github.repository_owner }}
org.opencontainers.image.created=${{ steps.buildVars.outputs.date }}
org.opencontainers.image.ref.name=${{ github.ref }}
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.source=https://github.com/${{ github.repository }}
cache-from: |
ghcr.io/${{ github.repository }}:cache-${{ hashFiles('package*.json') }}
ghcr.io/${{ github.repository }}:next
build-args: |
NODE_ENV=production
CLIENT_TAG=${{ steps.buildVars.outputs.clientTag }}
NEXT=${{ steps.buildVars.outputs.next }}
BUILD_DATE=${{ steps.buildVars.outputs.date }}
VCS_REF=${{ github.sha }}
VERSION=${{ steps.buildVars.outputs.version }}
- name: 🔄 Push container to DockerHub
id: docker-build-dh
uses: docker/build-push-action@v5
with:
context: .
github-token: ${{ secrets.GITHUB_TOKEN }}
builder: ${{ steps.buildx.outputs.name }}
platforms: linux/amd64,linux/arm64
push: true
tags: ubud/server:${{ github.sha }}
labels: |
org.opencontainers.image.authors=${{ github.repository_owner }}
org.opencontainers.image.created=${{ steps.buildVars.outputs.date }}
org.opencontainers.image.ref.name=${{ github.ref }}
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.source=https://github.com/${{ github.repository }}
cache-from: |
ghcr.io/${{ github.repository }}:${{ github.sha }}
ghcr.io/${{ github.repository }}:cache-${{ hashFiles('package*.json') }}
cache-to: type=inline
build-args: |
NODE_ENV=production
CLIENT_TAG=${{ steps.buildVars.outputs.clientTag }}
NEXT=${{ steps.buildVars.outputs.next }}
BUILD_DATE=${{ steps.buildVars.outputs.date }}
VCS_REF=${{ github.sha }}
VERSION=${{ steps.buildVars.outputs.version }}
release:
runs-on: ubuntu-latest
needs: [build-containers]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: 'npm'
node-version: '20'
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: version
path: version
Expand All @@ -143,13 +154,13 @@ jobs:
- name: install sentry cli
run: npm install -g @sentry/cli
- name: 🔐 Login to GitHub Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
registry: docker.pkg.github.com
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: 🔐 Login to DockerHub
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
Expand All @@ -167,7 +178,7 @@ jobs:
MICROBADGER_WEBHOOK_SECRET: ${{ secrets.MICROBADGER_WEBHOOK_SECRET }}
- name: update develop
if: ${{ github.ref == 'ref/head/main' }}
uses: everlytic/[email protected].0
uses: everlytic/[email protected].5
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
source_ref: 'main'
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ARG BASEIMAGE=multiarch/alpine:x86_64-latest-stable
ARG BASEIMAGE=alpine:latest
FROM $BASEIMAGE as build-container

ARG CLIENT_TAG=latest
Expand Down

0 comments on commit d324b3f

Please sign in to comment.