name: Package All # TODO(gitbuda): Cleanup docker container if GHA job was canceled. on: workflow_dispatch: inputs: memgraph_version: description: "Memgraph version to upload as. If empty upload is skipped. Format: 'vX.Y.Z'" required: false jobs: centos-7: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package centos-7 - name: "Upload package" uses: actions/upload-artifact@v3 with: name: centos-7 path: build/output/centos-7/memgraph*.rpm centos-9: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package centos-9 - name: "Upload package" uses: actions/upload-artifact@v3 with: name: centos-9 path: build/output/centos-9/memgraph*.rpm debian-10: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package debian-10 - name: "Upload package" uses: actions/upload-artifact@v3 with: name: debian-10 path: build/output/debian-10/memgraph*.deb debian-11: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package debian-11 - name: "Upload package" uses: actions/upload-artifact@v3 with: name: debian-11 path: build/output/debian-11/memgraph*.deb docker: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | cd release/package ./run.sh package debian-11 --for-docker ./run.sh docker - name: "Upload package" uses: actions/upload-artifact@v3 with: name: docker path: build/output/docker/memgraph*.tar.gz ubuntu-1804: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package ubuntu-18.04 - name: "Upload package" uses: actions/upload-artifact@v3 with: name: ubuntu-18.04 path: build/output/ubuntu-18.04/memgraph*.deb ubuntu-2004: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package ubuntu-20.04 - name: "Upload package" uses: actions/upload-artifact@v3 with: name: ubuntu-20.04 path: build/output/ubuntu-20.04/memgraph*.deb ubuntu-2204: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package ubuntu-22.04 - name: "Upload package" uses: actions/upload-artifact@v3 with: name: ubuntu-22.04 path: build/output/ubuntu-22.04/memgraph*.deb debian-11-platform: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package debian-11 --for-platform - name: "Upload package" uses: actions/upload-artifact@v3 with: name: debian-11-platform path: build/output/debian-11/memgraph*.deb fedora-36: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package fedora-36 - name: "Upload package" uses: actions/upload-artifact@v3 with: name: fedora-36 path: build/output/fedora-36/memgraph*.rpm amzn-2: runs-on: [self-hosted, DockerMgBuild, X64] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package amzn-2 - name: "Upload package" uses: actions/upload-artifact@v3 with: name: amzn-2 path: build/output/amzn-2/memgraph*.rpm debian-11-arm: runs-on: [self-hosted, DockerMgBuild, ARM64, strange] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package debian-11-arm - name: "Upload package" uses: actions/upload-artifact@v3 with: name: debian-11-aarch64 path: build/output/debian-11-arm/memgraph*.deb ubuntu-2204-arm: runs-on: [self-hosted, DockerMgBuild, ARM64, strange] timeout-minutes: 60 steps: - name: "Set up repository" uses: actions/checkout@v3 with: fetch-depth: 0 # Required because of release/get_version.py - name: "Build package" run: | ./release/package/run.sh package ubuntu-22.04-arm - name: "Upload package" uses: actions/upload-artifact@v3 with: name: ubuntu-22.04-aarch64 path: build/output/ubuntu-22.04-arm/memgraph*.deb upload-to-s3: # only run upload if we specified version. Allows for runs without upload if: "${{ github.event.inputs.memgraph_version != '' }}" needs: [centos-7, centos-9, debian-10, debian-11, docker, ubuntu-1804, ubuntu-2004, ubuntu-2204, debian-11-platform, fedora-36, amzn-2, debian-11-arm, ubuntu-2204-arm] runs-on: ubuntu-latest steps: - name: Download artifacts uses: actions/download-artifact@v3 with: # name: # if name input parameter is not provided, all artifacts are downloaded # and put in directories named after each one. path: build/output/release - name: Upload to S3 uses: jakejarvis/s3-sync-action@v0.5.1 env: AWS_S3_BUCKET: "download.memgraph.com" AWS_ACCESS_KEY_ID: ${{ secrets.S3_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_AWS_SECRET_ACCESS_KEY }} AWS_REGION: "eu-west-1" SOURCE_DIR: "build/output/release" DEST_DIR: "memgraph/${{ github.event.inputs.memgraph_version }}/"