diff --git a/.github/workflows/package_deploy.yml b/.github/workflows/package_deploy.yml new file mode 100644 index 0000000..54d79d1 --- /dev/null +++ b/.github/workflows/package_deploy.yml @@ -0,0 +1,53 @@ +name: Deploy Image to GitHub Packages + +on: + push: + tags: + - '*' + +env: + REGISTRY: ghcr.io + REPO_NAME: ${{ github.repository }} + IMAGE_VERSION: 0.0.2 + + +jobs: + push_image: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Lower case REPO_NAME + run: | + echo "REPO_NAME=$(echo $REPO_NAME | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + + - name: Update Makefile Variables + run: | + sed -i "s#^REGISTRY=.*#REGISTRY=${REGISTRY}#" Makefile + sed -i "s#^REPO_NAME=.*#REPO_NAME=${REPO_NAME}#" Makefile + sed -i "s#^IMAGE_VERSION=.*#IMAGE_VERSION=${IMAGE_VERSION}#" Makefile + + - name: Log in to the Container registry + uses: docker/login-action@v1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Check Docker Image Existence + run: | + if docker pull "$REGISTRY/$REPO_NAME:$IMAGE_VERSION"; then + echo "Version already built $REGISTRY/$REPO_NAME:$IMAGE_VERSION, aborting." >&2 + exit 1 + fi + + - name: Build Docker Image using Makefile + run: make build + + - name: Push Image to GitHub Packages + run: | + echo "$REGISTRY/$REPO_NAME:$IMAGE_VERSION" + docker push "$REGISTRY/$REPO_NAME:$IMAGE_VERSION" + docker push "$REGISTRY/$REPO_NAME:latest" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index d7c9a25..c626ebe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,8 @@ COPY downloads/ /downloads COPY flutter-sdk/ /flutter-sdk # extract stuff -RUN cd /flutter-sdk/android-sdk;\ +RUN git config --global --add safe.directory /flutter-sdk/flutter;\ + cd /flutter-sdk/android-sdk;\ unzip /downloads/android-sdk.zip;\ rm /downloads/android-sdk.zip;\ mkdir tmp;\ diff --git a/Makefile b/Makefile index 6d112d9..c872b39 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,19 @@ .PHONY: build prepare clean -FLUTTER_VERSION=1.22.2-stable -FLUTTER_DOWNLOAD_URL=https://storage.googleapis.com/flutter_infra/releases/stable/linux/flutter_linux_$(FLUTTER_VERSION).tar.xz +FLUTTER_VERSION=2.5.0-stable +FLUTTER_DOWNLOAD_URL=https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_$(FLUTTER_VERSION).tar.xz ANDROID_SDKTOOLS_DOWNLOAD_URL=https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip + +# these vars are assigned during GitHub Workflow - CI +IMAGE_VERSION= +REGISTRY= +REPO_NAME= + build: .build .build: prepare Dockerfile - docker build . + docker build -t $(REGISTRY)/$(REPO_NAME):$(IMAGE_VERSION) -t $(REGISTRY)/$(REPO_NAME):latest . touch .build prepare: flutter-sdk/.keep flutter-sdk/android-sdk/.keep downloads/android-sdk.zip downloads/flutter-sdk.tar.xz diff --git a/README.md b/README.md index 2b90328..f2723a1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # fastlane-linux-flutter-android-dockerimage An image for eventual CI, using Fastlane for a Flutter build targetting Android -Please check at Docker Hub: https://hub.docker.com/repository/docker/jeffque/fastlane-linux-flutter-android +Choose a image at https://github.com/GeoSales-Evolution/fastlane-linux-flutter-android-dockerimage/pkgs/container/fastlane-linux-flutter-android-dockerimage