diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml new file mode 100644 index 0000000..af8aaf7 --- /dev/null +++ b/.github/workflows/CI.yaml @@ -0,0 +1,73 @@ +name: build checker +run-name: Build and Python images + +on: + push: + branches-ignore: main +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + MAIN_BRANCH: "main" + +jobs: + setup: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: 3.12 + + - name: install dependencies + run: pip install -r requirements.txt + + - name: Create Dockerfiles of Python Images + run: python ./src/parse.py + + - uses: danyow/json-matrix-builder@v0.5.0 + id: array + with: + cmd: ls Python_dockerfiles + separator: newline + - name: "Upload Artifact" + uses: actions/upload-artifact@v4 + with: + name: Generated_Dockerfiles + path: Python_dockerfiles/ + retention-days: 1 + outputs: + param: ${{ steps.array.outputs.build }} + + matrix_input: + permissions: + contents: read + packages: write + id-token: write + needs: setup + runs-on: ubuntu-latest + strategy: + matrix: + param: ${{ fromJson(needs.setup.outputs.param) }} + + steps: + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: Generated_Dockerfiles + + - name: building images + run: | + tags=$(cat ${{matrix.param}}/tags.txt) + IFS=$'\n' + for tag in $tags; do + docker build -q --file ${{matrix.param}}/Dockerfile --tag ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:$tag . + done + + - name: delete artifacts + uses: geekyeggo/delete-artifact@v1 + with: + name: Generated_Dockerfiles diff --git a/.github/workflows/Publisher.yml b/.github/workflows/Publisher.yml index beb3640..7954343 100644 --- a/.github/workflows/Publisher.yml +++ b/.github/workflows/Publisher.yml @@ -3,6 +3,7 @@ run-name: Build and push Python images to GHCR on: push: + branches: main schedule: - cron: 0 0 * * * env: