--- name: Container Publish env: REGISTRY: docker.asperti.com REPOSITORY: paspo/barracudavpn on: push: schedule: - cron: "0 12 * * 3" workflow_dispatch: workflow_call: workflow_run: workflows: [vulnscan.yaml] types: [completed] jobs: on-success-skip: runs-on: labels: ubuntu-latest if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - run: exit_with_success build-image: runs-on: labels: [ubuntu-latest, "arch-${{ matrix.arch }}"] container: image: catthehacker/ubuntu:act-latest strategy: matrix: include: - ver: "5.2.2" debname: barracudavpn_5.2.2_amd64.deb url: https://d.barracudanetworks.com/VPN/Linux/VPNClient_5.2.2_Linux.tar.gz arch: amd64 - ver: "5.1.4" debname: barracudavpn_5.1.4_amd64.deb url: https://d.barracudanetworks.com/VPN/Linux/VPNClient_5.1.4_Linux.tar.gz arch: amd64 - ver: "5.0.2.7" debname: barracudavpn_5.0.2.7_amd64.deb url: https://d.barracudanetworks.com/VPN/Linux/VPNClient_5.0.2.7_Linux.tar.gz arch: amd64 steps: - uses: actions/checkout@v4 - name: Login to registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} - name: Build and publish run: | cd src docker build \ --tag ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:${{ matrix.ver }}-${{ matrix.arch }} \ --build-arg URL=${{ matrix.url }} \ --build-arg DEBNAME=${{ matrix.debname }} \ --platform linux/${{ matrix.arch }} --no-cache -f Dockerfile . docker push ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:${{ matrix.ver }}-${{ matrix.arch }} manifest: name: update docker manifest needs: build-image runs-on: ubuntu-latest container: image: catthehacker/ubuntu:act-latest strategy: matrix: ver: ["5.2.2", "5.1.4", "5.0.2.7"] steps: - name: Login to registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} - name: manifests run: | docker manifest create \ ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:${{ matrix.ver }} \ --amend ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:${{ matrix.ver }}-amd64 docker manifest push ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:${{ matrix.ver }} manifest-latest: name: update docker manifest needs: build-image runs-on: ubuntu-latest container: image: catthehacker/ubuntu:act-latest steps: - name: Login to registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} - name: latest run: | docker manifest create \ ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:latest \ --amend ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:5.2.2-amd64 docker manifest push ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:latest