diff options
-rw-r--r-- | .github/workflows/docker.yml | 52 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Dockerfile | 4 | ||||
-rwxr-xr-x | forgebot.sh | 4 | ||||
-rwxr-xr-x | forgebot_proper.sh | 3 | ||||
m--------- | repo | 0 |
6 files changed, 61 insertions, 3 deletions
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..9077fab --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,52 @@ +# +name: Create and publish a Docker image + +# Configures this workflow to run every time a change is pushed to the branch called `release`. +on: + push: + tags: + +# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu. +jobs: + build-and-push-image: + runs-on: ubuntu-latest + # Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job. + permissions: + contents: read + packages: write + attestations: write + # + steps: + - name: Checkout repository + uses: actions/checkout@v4 + # Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here. + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + # This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about) to extract tags and labels that will be applied to the specified image. The `id` "meta" allows the output of this step to be referenced in a subsequent step. The `images` value provides the base name for the tags and labels. + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + # This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages. + # It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository. + # It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step. + - name: Build and push Docker image + id: push + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + @@ -4,4 +4,5 @@ env.sh notificationdata messagedata forgebotdata +repo @@ -1,6 +1,8 @@ FROM alpine -RUN apk add --no-cache websocat bash jq grep curl +RUN apk add --no-cache websocat bash jq grep curl git COPY ./ /app/forgebot/ +# Some windows systems delete the executable bit, this fixes it inside of the docker container +RUN chmod +x forgebot_proper.sh WORKDIR "/app/forgebot" ENTRYPOINT ["/app/forgebot/forgebot_proper.sh"] diff --git a/forgebot.sh b/forgebot.sh index 98a246a..c0e3cac 100755 --- a/forgebot.sh +++ b/forgebot.sh @@ -7,9 +7,11 @@ # curl # find +rm -fr "${DATA_DIR:-.}/repo" +git clone http://github.com/notenoughupdates/notenoughupdates-repo "${DATA_DIR:-.}/"repo --depth=1 function get_duration() { - jq '.recipes[] | select(.type ="forge") | .duration * 1000' < repo/items/$1.json + jq '.recipes[] | select(.type ="forge") | .duration * 1000' < "${DATA_DIR:-.}"/repo/items/$1.json } diff --git a/forgebot_proper.sh b/forgebot_proper.sh index 947be04..834347a 100755 --- a/forgebot_proper.sh +++ b/forgebot_proper.sh @@ -12,7 +12,7 @@ require_program() { fi done } -require_program curl jq websocat printf grep find sed mkdir touch rm mv mkfifo basename tty +require_program curl jq websocat printf grep find sed mkdir touch rm mv mkfifo basename tty git if ! [[ "$(grep --version)" = *GNU* ]]; then echo Using non-GNU grep. This can cause issues since we use some non standard grep options. exit 1 @@ -28,6 +28,7 @@ if [[ x"$HYPIXEL_KEY" == x ]]; then echo "Please set HYPIXEL_KEY to your hypixel api key" exit 1 fi +echo Data dir: "${DATA_DIR:-.}" source "$(dirname -- "$0")"/atrocity/load.sh source "$(dirname -- "$0")"/hypixel_api.sh source "$(dirname -- "$0")"/data.sh diff --git a/repo b/repo deleted file mode 160000 -Subproject 52f3f65469b9b5fcd976b4573a7927aba5371cb |