diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml new file mode 100644 index 0000000..405bbff --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,70 @@ +name: Build and Test + +on: + push: + branches: ["**"] + pull_request: + +env: + DOCKER_TLS_CERTDIR: /certs + IMAGE_TAG: ${{ github.sha }} + SHORT_SHA: ${{ github.sha }} + +jobs: + splatoon: + runs-on: debian-trixie + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Cache container storage + uses: actions/cache@v4 + with: + path: | + /var/lib/containers/storage + /run/containers/storage + ~/.local/share/containers/storage + key: image-cache + + - name: Login to registry + run: podman login -u ${{ secrets.PACKAGE_USER }} -p ${{ secrets.PACKAGE_PWD }} git.spbr.net + + - name: Set short SHA + run: echo "SHORT_SHA=${GITHUB_SHA::6}" >> $GITHUB_ENV + + - name: Build and push + env: + CI_REGISTRY_IMAGE: git.spbr.net/spacebar/account + CI_COMMIT_SHORT_SHA: ${{ env.SHORT_SHA }} + run: | + git submodule update --init + podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + podman build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" . + podman push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" + + - name: Push retagged branch + env: + CI_REGISTRY_IMAGE: git.spbr.net/spacebar/account + CI_COMMIT_SHORT_SHA: ${{ forgejo.ref }} + CI_COMMIT_PREVIOUS_SHA: ${{ env.SHORT_SHA }} + run: | + git submodule update --init + podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + podman pull "$CI_REGISTRY_IMAGE:$CI_COMMIT_PREVIOUS_SHA" + podman tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_PREVIOUS_SHA" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" + podman push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" + + - name: Push retagged latest + env: + CI_REGISTRY_IMAGE: git.spbr.net/spacebar/account + CI_COMMIT_SHORT_SHA: latest + CI_COMMIT_PREVIOUS_SHA: ${{ env.SHORT_SHA }} + run: | + git submodule update --init + podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + podman pull "$CI_REGISTRY_IMAGE:$CI_COMMIT_PREVIOUS_SHA" + podman tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_PREVIOUS_SHA" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" + podman push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" \ No newline at end of file