Skip to content

Commit

Permalink
feat: move scripts logic to actions
Browse files Browse the repository at this point in the history
  • Loading branch information
carlosala committed Mar 6, 2024
1 parent f09cedc commit ee1a706
Show file tree
Hide file tree
Showing 5 changed files with 134 additions and 106 deletions.
191 changes: 134 additions & 57 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,76 +1,153 @@
name: Publish Docker images
on:
workflow_dispatch: {}
push:
branches:
- main
pull_request:
schedule:
- cron: "46 2 * * 1"

env:
LATEST_ZSH: "5.9"
DOCKERHUB_ORG: "ohmyzsh"
MAIN_OMZ_BRANCH: "master" # TODO: we need to change master with main when migrating the branch

jobs:
build-and-push:
name: Build Docker images
get-omz-versions:
name: Get Oh My Zsh versions
runs-on: ubuntu-latest
outputs:
versions: ${{ steps.versions.outputs.versions }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build images
env:
zsh_tags: |
master
5.9
5.8.1
5.8
5.7.1
5.7
5.6.2
5.6.1
5.6
5.5.1
5.5
5.4.2
5.4.1
5.4
5.3.1
5.3
5.2
5.1.1
5.1
5.0.8
5.0.7
5.0.6
5.0.5
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0
4.3.17
4.3.16
4.3.15
4.3.14
4.3.13
4.3.12
4.3.11
- name: Get Oh My Zsh versions
id: versions
run: |
for image in */Dockerfile; do
image="$(basename $(dirname $image))"
OMZ_VERSIONS=$(curl -sL https://api.github.com/repos/ohmyzsh/ohmyzsh/tags | jq -c '["${{ env.MAIN_OMZ_BRANCH }}",.[].name]')
echo "versions=$OMZ_VERSIONS" >> $GITHUB_OUTPUT
if ! test -f "$image/build.sh"; then
echo "::error ::missing build.sh file at /$image"
exit 1
fi
build-omz:
name: Build Oh My Zsh Docker image
runs-on: ubuntu-latest
needs:
- get-omz-versions
strategy:
matrix:
omz-version: ${{ fromJSON(needs.get-omz-versions.outputs.versions) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Get tags and versions
id: tags
run: |
tags=${{ env.DOCKERHUB_ORG }}/ohmyzsh:${{ matrix.omz-version }}
if [ ${{matrix.omz-version }} = ${{ env.MAIN_OMZ_BRANCH }} ]; then
tags="${tags},${{ env.DOCKERHUB_ORG }}/ohmyzsh:latest"
fi
echo "tags=$tags" >> $GITHUB_OUTPUT
- name: Build and push images
uses: docker/build-push-action@v5
with:
context: ohmyzsh
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
build-args: "OMZ_VERSION=${{ matrix.omz-version }}"
tags: ${{ steps.tags.outputs.tags }}

"$image/build.sh" ${{ secrets.DOCKERHUB_ORG }}
done
build-zsh:
name: Build Zsh Docker images
runs-on: ubuntu-latest
strategy:
matrix:
zsh-version:
- "master"
- "5.9"
- "5.8.1"
- "5.8"
- "5.7.1"
- "5.7"
- "5.6.2"
- "5.6.1"
- "5.6"
- "5.5.1"
- "5.5"
- "5.4.2"
- "5.4.1"
- "5.4"
- "5.3.1"
- "5.3"
- "5.2"
- "5.1.1"
- "5.1"
- "5.0.8"
- "5.0.7"
- "5.0.6"
- "5.0.5"
- "5.0.4"
- "5.0.3"
- "5.0.2"
- "5.0.1"
- "5.0.0"
- "4.3.17"
- "4.3.16"
- "4.3.15"
- "4.3.14"
- "4.3.13"
- "4.3.12"
- "4.3.11"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Log in to Docker Hub
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Push to Docker Hub
- name: Get tags and versions
id: tags
run: |
for image in */Dockerfile; do
image="$(basename $(dirname $image))"
docker push "${{ secrets.DOCKERHUB_ORG }}/$image" --all-tags
done
tags=${{ env.DOCKERHUB_ORG }}/zsh:${{ matrix.zsh-version }}
if [ ${{matrix.zsh-version }} = ${{ env.LATEST_ZSH }} ]; then
tags="${tags},${{ env.DOCKERHUB_ORG }}/zsh:latest"
fi
echo "tags=$tags" >> $GITHUB_OUTPUT
- name: Build and push images
uses: docker/build-push-action@v5
with:
context: zsh
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
build-args: "ZSH_VERSION=${{ matrix.zsh-version }}"
tags: ${{ steps.tags.outputs.tags }}

update-image-readme:
needs:
- build-zsh
- build-omz
runs-on: ubuntu-latest
if: ${{ github.event_name != 'pull_request' }}
steps:
- name: Update image READMEs
env:
DH_USERNAME: ${{ secrets.DOCKERHUB_USER }}
Expand All @@ -84,5 +161,5 @@ jobs:
continue
fi
node .github/scripts/update-image-readme.js "${{ secrets.DOCKERHUB_ORG }}/$image" "$image/README.md"
node .github/scripts/update-image-readme.js "${{ env.DOCKERHUB_ORG }}/$image" "$image/README.md"
done
1 change: 0 additions & 1 deletion ohmyzsh/.dockerignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
build.sh
README.md
27 changes: 0 additions & 27 deletions ohmyzsh/build.sh

This file was deleted.

1 change: 0 additions & 1 deletion zsh/.dockerignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
build.sh
README.md
20 changes: 0 additions & 20 deletions zsh/build.sh

This file was deleted.

0 comments on commit ee1a706

Please sign in to comment.