name: Build on push run-name: Build on push on: push: branches: - dev jobs: prepare: runs-on: [runner] container: git.sh-edraft.de/sh-edraft.de/act-runner:latest steps: - name: Clone Repository uses: https://github.com/actions/checkout@v3 with: token: ${{ secrets.CI_ACCESS_TOKEN }} - name: Get Date and Build Number run: | DATE=$(date +'%Y.%m.%d') git fetch --tags TAG_COUNT=$(git tag -l "${DATE}.*" | wc -l) BUILD_NUMBER=$(($TAG_COUNT + 1)) BUILD_VERSION="${DATE}.${BUILD_NUMBER}-dev" echo "BUILD_VERSION=$BUILD_VERSION" >> $GITHUB_ENV echo "$BUILD_VERSION" > build_version.txt - name: Create Git Tag for Build run: | git config user.name "ci" git config user.email "dev@sh-edratf.de" git tag ${{ env.BUILD_VERSION }} git push origin ${{ env.BUILD_VERSION }} - name: Save Version Info run: | echo "VERSION = \"${{ env.BUILD_VERSION }}\"" > api/version.py - name: Upload build version artifact uses: actions/upload-artifact@v3 with: name: build-version path: build_version.txt build-api: runs-on: [runner] needs: prepare container: git.sh-edraft.de/sh-edraft.de/act-runner:latest steps: - name: Clone Repository uses: https://github.com/actions/checkout@v3 with: token: ${{ secrets.CI_ACCESS_TOKEN }} - name: Download build version artifact uses: actions/download-artifact@v3 with: name: build-version - name: Load build version run: | BUILD_VERSION=$(cat build_version.txt) echo "Loaded BUILD_VERSION=$BUILD_VERSION" - name: Build docker run: | cd api docker build -t git.sh-edraft.de/sh-edraft.de/open-redirect-api:$BUILD_VERSION . - name: Login to registry git.sh-edraft.de uses: https://github.com/docker/login-action@v1 with: registry: git.sh-edraft.de username: ${{ secrets.CI_USERNAME }} password: ${{ secrets.CI_ACCESS_TOKEN }} - name: Push image run: | docker push git.sh-edraft.de/sh-edraft.de/open-redirect-api:${{ needs.prepare.outputs.build_version }} build-redirector: runs-on: [runner] needs: prepare container: git.sh-edraft.de/sh-edraft.de/act-runner:latest steps: - name: Clone Repository uses: https://github.com/actions/checkout@v3 with: token: ${{ secrets.CI_ACCESS_TOKEN }} - name: Build docker run: | cd api docker build -f dockerfile_redirector -t git.sh-edraft.de/sh-edraft.de/open-redirect-redirector:${{ needs.prepare.outputs.build_version }} . - name: Login to registry git.sh-edraft.de uses: https://github.com/docker/login-action@v1 with: registry: git.sh-edraft.de username: ${{ secrets.CI_USERNAME }} password: ${{ secrets.CI_ACCESS_TOKEN }} - name: Push image run: | docker push git.sh-edraft.de/sh-edraft.de/open-redirect-redirector:${{ needs.prepare.outputs.build_version }} build-web: runs-on: [runner] needs: prepare container: git.sh-edraft.de/sh-edraft.de/act-runner:latest steps: - name: Clone Repository uses: https://github.com/actions/checkout@v3 with: token: ${{ secrets.CI_ACCESS_TOKEN }} - name: Prepare web build run: | cd web npm ci - name: Build web run: | cd web npm run build - name: Build docker run: | cd web docker build -t git.sh-edraft.de/sh-edraft.de/open-redirect-web:${{ needs.prepare.outputs.build_version }} . - name: Login to registry git.sh-edraft.de uses: https://github.com/docker/login-action@v1 with: registry: git.sh-edraft.de username: ${{ secrets.CI_USERNAME }} password: ${{ secrets.CI_ACCESS_TOKEN }} - name: Push image run: | docker push git.sh-edraft.de/sh-edraft.de/open-redirect-web:${{ needs.prepare.outputs.build_version }}